Ich habe Folgendes verwendet, um zu entscheiden, ob ein Checkout-Feld vollständig sein muss oder nicht …
if ($posted['shipping_method'] == "local_pickup_plus") {
}
Seit dem Update auf WooCommerce 2.1 funktioniert mein Code nicht mehr.
Ich habe versucht, den in $posted gespeicherten Wert wiederzugeben[‘shipping_method’] um zu sehen, ob ich es mit dem richtigen Wert überprüfe, aber es scheint, dass in dieser Variablen nichts mehr gespeichert ist.
Ich habe nach anderen Methoden gesucht, um die gewählte Versandart zu überprüfen, aber ich komme nicht sehr weit.
Jede mögliche Unterstützung würde sehr geschätzt.
Ich habe ein paar Stunden danach gesucht und mich dann entschieden, in die WooCommerce-Dateien einzutauchen …
Das scheint bei mir zu funktionieren:
$chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
$chosen_shipping = $chosen_methods[0];
Ich verwende dies, um eine Mindestsumme für die lokale Lieferung festzulegen, indem ich es so in meiner functions.php verwende
add_action( 'woocommerce_cart_calculate_fees','woocommerce_custom_surcharge' );
function woocommerce_custom_surcharge() {
global $woocommerce;
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
$chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
$chosen_shipping = $chosen_methods[0];
$min_spend = 25;
$cart_total = $woocommerce->cart->cart_contents_total;
if (($cart_total < 25) AND ($chosen_shipping == 'local_delivery')) {
$surcharge = $min_spend-$cart_total;
$woocommerce->cart->add_fee( 'Delivery Surchage', $surcharge, true, 'standard' );
}
}
Hoffe das hilft jemandem weiter.
Von dem Quellcode des WooCommerce 2.1 :
$this->posted['shipping_method'] = isset( $_POST['shipping_method'] ) ? $_POST['shipping_method'] : '';
Also wenn die Variable $_POST['shipping_method']
ist dann nicht gesetzt $posted['shipping_method']
wird eine leere Zeichenfolge sein. Ich vermute, das ist deins form
hat die nicht method
Attribut gesetzt auf post
(Es wird vielleicht weggelassen oder Sie versuchen, Links für die Produktübermittlung zu verwenden, nicht die form
).
$_POST[‘shipping_method’] ist ein Array, $whatever = $_POST[‘shipping_method’]$was auch immer[0] = Wert
13840600cookie-checkWooCommerce 2.1 Gewählte Versandart erkennenyes