2017-06-21 2 views
0

Ich habe folgenden Code verwendet, um benutzerdefinierte Zustandsfeld zu WooCommerce Kasse FeldWooCommerce Zustand benutzerdefinierte Kasse Feld nicht funktioniert

add_action('woocommerce_after_order_notes', 'some_custom_checkout_field'); 

function some_custom_checkout_field($checkout){ 
    echo '<div id="some_custom_checkout_field"><h2>' . __('Heading') . '</h2>'; 
    woocommerce_form_field('some_field_name', array(

     'type'   => 'state', 
     'class'   => array('my-field-class form-row-wide'), 
     'label'   => __('Additional Field'), 
     'required'  => true, 
    ), $checkout->get_value('some_field_name')); 

    echo '</div>'; 
} 

Mein Problem hinzu:
Als ich zur Kasse Seite zum ersten Mal besuchen es immer Erstelle eine TEXT BOX anstelle eines State Drop Downs. Wenn ich die Seite aktualisiere, funktioniert das problemlos.

Antwort

0

Wenn Sie ein zusätzliches Feld beim Auschecken Formular hinzufügen möchten, müssen Sie den Haken woocommerce_checkout_fields auch müssen Sie Typ als "auswählen" definieren. Ich habe diesen Code verwendet, um ein zusätzliches Feld hinzuzufügen und die Checkout-Seite anzupassen.

https://docs.woocommerce.com/document/tutorial-customising-checkout-fields-using-actions-and-filters/#section-3

+0

wenn wir verwenden 'select' als wir viele haben Komplexität, um Optionen zu füllen. Gedanken? –

+0

können Sie die Statusoptionsliste von woocommerce anzeigen. –

+0

können wir die Statusliste nach Ländercode abrufen, also welchen Ländercode wir verwenden, um die Statusliste zu erhalten? –

0

Wenn Sie Zustände für Ihr Land, als Statusfeld hinzufügen möchten gibt es bereits für einige Länder in WC, benötigen Sie eine benutzerdefinierte Funktion in woocommerce_states Filter Haken auf diese Weise süchtig verwenden :

add_filter('woocommerce_states', 'adding_custom_country_states'); 
function adding_custom_country_states($states) { 

    ## Replace Here 'FR' with your country code (and also the keys in the array) 
    $states['FR'] = array(
     'FR01' => __('State 1', 'woocommerce'), 
     'FR02' => __('State 2', 'woocommerce'), 
     'FR03' => __('State 3', 'woocommerce'), 
     'FR04' => __('State N', 'woocommerce'), // And so on 
    ); 

    return $states; 
} 

-Code geht Ihrem aktives Kind Thema (oder Thema) oder auch in jeder Plugin-Datei in function.php Datei.

Dies ist der einzige Weg, um Ihr Problem zu vermeiden


Sie diese bekommen:

enter image description here

+0

Ich glaube, dass dieser Filter auch den Status der Rechnungsadresse und Versandadresse ändert, während ich ein benutzerdefiniertes Statusfeld haben möchte. –

+0

@ShravanShrama Dieser Filter ändert nichts für die bestehenden Länder, aber fügt Staaten zu den Ländern hinzu, die nicht ... Warum fügst du ein zweites Zustandfeld außerhalb der Rechnungs- und Lieferadressenfelder hinzu ... das ist sehr merkwürdig. Sie sollten das "Warum" erklären. – LoicTheAztec

+0

Tatsächlich haben wir eine zusätzliche Serviceadresse wie Rechnungsstellung und Versand und warum diese Adresse eine lange Geschichte hat, die hier nicht erklärt werden kann: –

Verwandte Themen