2017-05-16 9 views
0

Ich habe den ganzen Tag den Kopf kratzt. Ich möchte ein benutzerdefiniertes Kontrollkästchen innerhalb der Auftragsprüfung hinzufügen, bevor Sie eine Bestellung aufgeben. Hier ist mein Code:Fügen Sie ein benutzerdefiniertes Kontrollkästchen zu woocommerce_checkout_order_review

add_action('woocommerce_checkout_order_review', 'my_checkbox'); 

function my_checkbox($checkout) { 
    echo '<div class="my_split_checkbox"><h2>' . __('Split Order', 'woocommerce') . '</h2>'; 

    woocommerce_form_field('my_split_checkbox', array(
     'type'  => 'checkbox', 
     'class' => array('checkbox_field'), 
     'label' => __('Split Order', 'woocommerce'), 
     'required' => false, 
    ), $checkout->get_value('my_split_checkbox')); 

    echo '</div>'; 
} 

aber die Seite nicht vollständig geladen. Wenn ich jedoch den Haken durch

add_action('woocommerce_after_checkout_billing_form', 'my_checkbox'); 

ersetzen, dann zeigt die Chekbox am Ende der Rechnungsdetails ohne Probleme. Wie kann ich die Textbox innerhalb der Überprüfung der Bestellbestätigung anzeigen lassen? Idealerweise nach der Tabelle .woocommerce-checkout-review-order-table. basierend auf dem prioritäts

woocommerce_review_order_after_cart_contents 
woocommerce_review_order_before_shipping 
woocommerce_review_order_after_shipping 
woocommerce_review_order_before_order_total 
woocommerce_review_order_after_order_total 

Für weitere Informationen gehen Sie zu woocommerce/templates/checkout/review-order.php

Antwort

0

Sie sollten alle diejenigen unter Haken statt woocommerce_checkout_order_review verwenden Sie das Kontrollkästchen Feld anzuzeigen. Wenn Sie bereits den Ordner templates als woocommerce in Ihr Themenverzeichnis kopiert haben, finden Sie möglicherweise dort die review-order.php. Und auch Sie müssen $checkout Variable sowie , $checkout->get_value('my_split_checkbox') entfernen. Weil diese Haken keinen Parameter passieren. Bitte überprüfen Sie die review-order.php, Sie erhalten einen Überblick.

So Ihre ganze Code wird wie unten-

add_action('woocommerce_checkout_order_review', 'my_checkbox'); 

function my_checkbox() { 
    echo '<div class="my_split_checkbox"><h2>' . __('Split Order', 'woocommerce') . '</h2>'; 

    woocommerce_form_field('my_split_checkbox', array(
     'type'  => 'checkbox', 
     'class' => array('checkbox_field'), 
     'label' => __('Split Order', 'woocommerce'), 
     'required' => false, 
    )); 

    echo '</div>'; 
} 

Hoffnung, das hilft.

+0

Hallo, vielen Dank für die schnelle Antwort. Ich habe alle Haken ausprobiert, die Sie erwähnt haben, aber alle hören auf, den Rest der Seite zu laden, sobald sie "woocommerce_form_field" erreichen. Ich habe alle meine Funktionen in functions.php – Alex

+0

Schalten Sie Ihren *** WordPress *** Debug-Modus, indem Sie 'define ('WP_DEBUG', true);' in Ihrem 'wp-config.php' und geben Sie hier den Fehler. –

+0

Ich bekomme ** Fataler Fehler: Aufruf einer Memberfunktion get_value() bei String ** was zu '), $ checkout-> get_value ('my_split_checkbox'));' Warum sollte die Variable $ checkout ein Problem sein? – Alex

Verwandte Themen