2017-02-11 18 views
5

मेरे पास यह स्थिति है - मैंने woocommerce ईमेल टेम्पलेट्स में से एक में बदलाव किए हैं, लेकिन मुझे यकीन है - ये परिवर्तन अगले woocommerce अद्यतन के बाद खो जाएंगे।कोर फ़ाइलों को ओवरराइड किए बिना बीएसीएस खाता फ़ील्ड में एक कस्टम फ़ील्ड जोड़ना

जैसा कि मुझे पता है, मुझे इस समस्या को बाईपास करने के लिए थीम फ़ंक्शंस का उपयोग करना चाहिए।

'merkis' => array(
    'label' => $merkis, 
    'value' => $pasutijums 
) 

कैसे मुझे लगता है कि मूल फ़ाइल अधिभावी के बिना अपने कस्टम कोड प्रविष्ट कर सकते

echo '<ul class="wc-bacs-bank-details order_details bacs_details">' . PHP_EOL; 

       // BACS account fields shown on the thanks page and in emails 
       $account_fields = apply_filters('woocommerce_bacs_account_fields', array(
        'account_number'=> array(
         'label' => __('Account Number', 'woocommerce'), 
         'value' => $bacs_account->account_number 
        ), 
        'sort_code'  => array(
         'label' => $sortcode, 
         'value' => $bacs_account->sort_code 
        ), 
        'iban'   => array(
         'label' => __('IBAN', 'woocommerce'), 
         'value' => $bacs_account->iban 
        ), 
        'bic'   => array(
         'label' => __('BIC', 'woocommerce'), 
         'value' => $bacs_account->bic 
        ) 

       ), $order_id); 

       foreach ($account_fields as $field_key => $field) { 
        if (! empty($field['value'])) { 
         echo '<li class="' . esc_attr($field_key) . '">' . esc_attr($field['label']) . ': <strong>' . wptexturize($field['value']) . '</strong></li>' . PHP_EOL; 
        } 
       } 

       echo '</ul>'; 

यहाँ कस्टम खाता क्षेत्र कोड है कि मैं सम्मिलित करना चाहते है:

इस परिवर्तन से पहले कोड है ?

धन्यवाद

+0

@LoicTheAztec अपने जवाब के लिए धन्यवाद! लेकिन एक हुक फ़ंक्शन के माध्यम से इस कोड इंजेक्शन को कैसे बनाया जाए? –

+0

@LoicTheAztec class-wc-gateway-bacs.php –

+1

आप Google में केवल टाइपिंग में खोज सकते हैं: 'woocommerce_bacs_account_fields' और आपको इसके बारे में सभी संबंधित प्रश्न और उत्तर मिलेंगे ... – LoicTheAztec

उत्तर

6

कभी कोर फ़ाइलों ओवरराइड और हमेशा WooCommerce का उपयोग कोड अनुकूलन करने की हुक शामिल थे।

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

तो BACS खाते क्षेत्र में एक नए क्षेत्र को जोड़ने के लिए कोड, होने जा रहा है:

add_filter('woocommerce_bacs_account_fields', 'custom_bacs_account_field', 10, 2); 
function custom_bacs_account_field($account_fields, $order_id) { 
    $account_fields['merkis' ] = array(
     'label' => $merkis, 
     'value' => $pasutijums 
    ); 
    return $account_fields; 
} 

कोड किसी भी में अपनी सक्रिय बच्चा विषय (या विषय) की function.php फ़ाइल में चला जाता है या भी प्लगइन फ़ाइल।

इस कोड का परीक्षण किया और काम करता है ...

संबंधित मुद्दे