2017-02-11 13 views
5

Mam taką sytuację - wprowadziłem zmiany w jednym z szablonów wiadomości e-mail dla woocommerce, ale jestem pewien - zmiany te zostaną utracone po następnej aktualizacji woocommerce.Dodawanie pola niestandardowego do pól konta BACS bez przesłonięcia plików podstawowych

Jak wiem, powinienem używać funkcji tematycznych, aby ominąć ten problem.

Jest to kod przed zmianami:

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>'; 

Oto konto niestandardowy kod pola, które chcę wstawić:

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

Jak mogę wstawić mojego kodu niestandardowego bez przesłanianie że plik core ?

Dzięki

+0

@LoicTheAztec Dziękuję za odpowiedź! Ale jak utworzyć wtrysk kodu za pomocą funkcji haczyka? –

+0

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

+1

Możesz wyszukiwać w google, wpisując: 'woocommerce_bacs_account_fields', a znajdziesz tam wszystkie powiązane pytania i odpowiedzi ... – LoicTheAztec

Odpowiedz

6

Nie wolno wyłączać podstawowe pliki i zawsze używają woocommerce zawarte haczyki, aby dostosowania kodu.

Jeśli nie masz jeszcze znaleźć sposób, aby tę zmianę poprzez zwyczaj haczykowatym funkcji, jak widać w przewidzianym kodu, można użyć woocommerce_bacs_account_fields hak filtr, aby dodać swój własny kod, bez przesłanianie dowolne pliki podstawowe WooCommerce.

Więc kod na dodanie nowego pola w polach konta BACS, będzie:

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; 
} 

Kod idzie w pliku function.php swojego aktywnego motywu dziecka (lub tematu) lub też w jakikolwiek plik wtyczki.

Ten kod został przetestowany i działa ...

Powiązane problemy