2017-02-07 7 views
0

In WooCommerce gefüllt Ich habe einen benutzerdefinierten Textbereich Feld in der Kasse Seiteändern Payment-Gateway, wenn TextArea-

so angelegt, wenn ich schreibe alles auf dem Textfeld der Payment-Gateway zu „Check“ ändern und wenn es nichts dann wird es nur „paypal“

ich habe sein keine Ahnung, wie dies zu tun, wie ich in WooCommerce sehr wenig Wissen haben

woocommerce_form_field('custom_product', array(

    'type' => 'textarea', 
    'label'  => __('Custom products', 'woocommerce'), 
    'required' => false, 
    'class'  => array('form-row-wide'), 
    'clear'  => true, 
     ), $checkout->get_value('custom_product')); 

Jede Hilfe sehr geschätzt werden würde.

Dank

+0

Ist es nur ein Kontrollkästchen, das zu ändern angeklickt werden muss, Zahlungs-Gateways? –

+0

Hallo @SergioAlen es ist kein Kontrollkästchen, es sollte ein Textfeld sein. Wenn ich in das Textfeld schreibe, ändert sich auch das Zahlungsgateway. –

+0

ja, aber gibt es schon eine Möglichkeit, das Zahlungsgateway ohne den Textbereich zu ändern? –

Antwort

0

Wenn Sie die Kontrollkästchen sehen können Zahlungsmethoden auf der Checkout-Seite wählen, dann können Sie jQuery einen Klick zu simulieren benutzen, wenn der Textbereich gefüllt ist:

jQuery('textarea').on('input', function(){ 
    jQuery('#payment_method_cheque').click(); // check if the radio input has this id #payment_method_cheque and change if not 
}); 
+0

Ich werde versuchen, jquery, wenn es es funktionieren wird –

+0

Ich weiß einfach nicht, wie man das funktioniert –

1

Ja Sie tun können Dies mit einem einfachen jQuery-Skript, abhängig davon, welches Zahlungsgateway Sie aktivieren möchten.

Mai werden Sie erste benötigen eine zusätzliche CSS-Klasse zu Ihrem texarea hinzufügen, um besser mit dem Abfrageskript Ziel (ich habe ein wenig Code zu Testzwecken nur abgeschlossen).

So Ihre vollständige Code Funktion wird sein:

add_action('woocommerce_after_order_notes', 'custom_checkout_textarea_field', 10, 1); 
function custom_checkout_textarea_field($checkout){ 

    echo '<div id="custom-texarea-field"> 
     <h2>' . __('My Field Title', 'woocommerce') . '</h2>'; 

    woocommerce_form_field('custom_product', array(

     'type' => 'textarea', 
     'label'  => __('Custom products', 'woocommerce'), 
     'required' => false, 
     'class'  => array('custom-product-ta form-row-wide'), ## @ <== HERE 
     'clear'  => true, 
    ), $checkout->get_value('custom_product')); 

    echo '</div>'; 

} 

Dann können Sie jetzt auch hinzufügen, den Code unten Haken in woocommerce_checkout_before_customer_details Kasse Aktion Haken, dass einige Abfrage-Skript in Ihre Kasse Seite einbetten.

Das jQuery-Skript wird aktiviert, in diesem Beispiel die Optionsschaltfläche Zahlungsmethode überprüfen, wenn Ihr Textbereich mit etwas gefüllt wird.

Das ist also der zusätzliche Code zu diesem Zweck:

add_action('woocommerce_checkout_before_customer_details','custom_jquery_for_texarea'); 
function custom_jquery_for_texarea(){ 
    ?> 
    <script> 
    jQuery(document).ready(function($) { 
     $('.custom-product-ta textarea').on('input', function(){ 
      $('.wc_payment_method payment_method_cheque > input[name=payment_method]').prop('checked', true); 
     }); 
    }); 
    </script> 
    <?php 
} 

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

Dieser Code ist getestet und funktioniert ...


Verwandte Antwort auf jQuery-Code: JQuery: detect change in input field

WooCommerce Dokumentation: Customizing checkout fields using actions and filters

Verwandte Themen