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.