WooCommerce: get_price_html को कैसे संपादित करें


13

मैं किसी एक उत्पाद के लिए मूल्य मूल्य संपादित करने की कोशिश कर रहा हूं।

में single-product/price.phpएक टेम्पलेट कॉल है $product->get_price_html। HTML प्रस्तुत करने के तरीके को बदलने के लिए मैं उस फ़ंक्शन / विधि को कैसे संपादित कर सकता हूं?

फिलहाल भले ही मैं class-wc-productइसमें स्थित फ़ंक्शन की सभी सामग्री को हटा देता हूं, फिर भी चमत्कारिक ढंग से प्रदर्शित करता है? किसी को पता है क्यों?

जवाबों:


17

कोर और प्लगइन फ़ाइलों को कभी भी सीधे संपादित नहीं किया जाना चाहिए, क्योंकि कोई भी अपडेट आपके परिवर्तनों को अधिलेखित कर सकता है। यदि आप get_price_htmlविधि में WooCommerce स्रोत को देखते हैं, तो फ़ंक्शन के आउटपुट को संशोधित करने के लिए कई फ़िल्टर उपलब्ध हैं।

कॉल add_filterको फिल्टर जोड़ने के बारे में अधिक जानकारी के लिए कोडेक्स में देखें apply_filters।

से get_price_htmlमें class-wc-product:

return apply_filters('woocommerce_get_price_html', $price, $this);

तो अपने स्वयं के फ़िल्टर को जोड़ने के लिए:

add_filter( 'woocommerce_get_price_html', 'wpa83367_price_html', 100, 2 );
function wpa83367_price_html( $price, $product ){
    return 'Was:' . str_replace( '<ins>', ' Now:<ins>', $price );
}

उत्तर के लिए धन्यवाद, जिस तरह से जब मैं मुख्य फ़ंक्शन की सामग्री को हटाता हूं तो यह आउटपुट को सामान्य रूप से लौटाता है
— लकी ल्यूक

1
तो चलो कहते हैं कि अगर वहाँ एक बिक्री थी और यह मुझे लौटाता है <del>£2</del><ins>£1</ins>, तो मैं इसे Was:<del>£2</del> Now:<ins>£1</ins>फ़िल्टर के साथ कैसे बदल सकता हूं ?
— लकी ल्यूक

यकीन नहीं है, WooCommerce से भी परिचित नहीं है, शायद एक और वर्ग इसका विस्तार करता है। अपने दूसरे प्रश्न के लिए ऊपर संपादित देखें।
— मिलो

ब्रिल,;), बड़ी मदद
— लकी ल्यूक

मैं यह जानने की कोशिश कर रहा हूं कि डिफॉल्ट woocommerce_get_price_htmlफिल्टर में क्या हो रहा है $price। मेरी साइट में, woocommerce इसके बजाय नि: शुल्क उत्पादों के लिए $ 0 दिखाता हैFree!
— SKMohammadi

5
function wpa83368_price_html( $price,$product ){
   // return $product->price;
    if ( $product->price > 0 ) {
      if ( $product->price && isset( $product->regular_price ) ) {
        $from = $product->regular_price;
        $to = $product->price;
        return '<div class="old-colt"><del>'. ( ( is_numeric( $from ) ) ? woocommerce_price( $from ) : $from ) .' Retail </del>  | </div><div class="live-colst">'.( ( is_numeric( $to ) ) ? woocommerce_price( $to ) : $to ) .'Our Price</div>';
      } else {
        $to = $product->price;
        return '<div class="live-colst">' . ( ( is_numeric( $to ) ) ? woocommerce_price( $to ) : $to ) . 'Our Price</div>';
      }
   } else {
     return '<div class="live-colst">0 Our Price</div>';
   }
}

5
यहां तक ​​कि अगर आपका कोड काम कर सकता है (और मेरे पास यह सोचने का कोई कारण नहीं है कि यह नहीं है) यह एक क्यू / ए साइट है, न कि एक कोड रिपॉजिटरी तो यह बेहतर शेयर विशेषज्ञ और ज्ञान है जो आपके कोड को समझा रहा है, बजाय किसी स्पष्टीकरण के साथ कोड लिखें। और न ही इनलाइन टिप्पणी ...
— gmazzap

कोड वस्तु गुणों का भी उपयोग करता है जो अच्छा नहीं है।
— स्वेतोस्लाव मारिनोव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.