WooCommerce Warenkorb Validierung: vermeiden Sie in den Warenkorb legen

hey Leute ich habe ein probleme mit woocommerce, dass im, der versucht zu reparieren, für ein paar Tage.

im erstellen einer Webseite für einen Kerl und er wollte mich zu fügen Sie eine benutzerdefinierte Eingabe auf der Produkt-Seite, ich konnte es selbst zu tun so habe ich ein freelancer online.

auf der Produkt-Seite habe ich

add-to-cart-Taste, Menge input und Datum eingegeben.

"Datum Eingang" ist der freelancer haben.

die Sache ist, dass wenn die $_REQUEST['thedate'] leer ist, ist das benutzerdefinierte Fehler-popup, aber das Produkt noch in den Warenkorb gelegt.

dem code:(functions.php)

function add_the_date_validation() { 
if ( empty( $_REQUEST['thedate'] )) {
    wc_add_notice( __( 'Please enter a date.', 'woocommerce' ), 'error' );
    return false;
}
return true;
}
add_action( 'woocommerce_add_to_cart_validation', 'add_the_date_validation', 10, 5 );    

dem Stadtplan:
http://i.stack.imgur.com/a75P6.png

  • Wie kann ich verhindern, dass das Produkt zur Beurteilung itslef in den Warenkorb gelegt?

anderen codes die freelancer haben:

function save_add_the_date_field( $cart_item_key, $product_id = null, $quantity= null, $variation_id= null, $variation= null ) {
if( isset( $_REQUEST['thedate'] ) ) {
    WC()->session->set( $cart_item_key.'_the_date', $_REQUEST['thedate'] );
}
}

add_action( 'woocommerce_add_to_cart', 'save_add_the_date_field', 1, 5 );

function render_meta_on_checkout_order_review_item( $quantity = null, $cart_item = null, $cart_item_key = null ) {
if( $cart_item_key && WC()->session->__isset( $cart_item_key.'_the_date' ) ) {
    echo $quantity. '<dl class="">
             <dt class="">Date: </dt>
             <dd class=""><p>'. WC()->session->get( $cart_item_key.'_the_date') .'</p></dd>
          </dl>';
}
}

add_filter( 'woocommerce_checkout_cart_item_quantity', 'render_meta_on_checkout_order_review_item', 1, 3 );

function the_date_order_meta_handler( $item_id, $values, $cart_item_key ) {
if( WC()->session->__isset( $cart_item_key.'_the_date' ) ) {
    wc_add_order_item_meta( $item_id, "the_date", WC()->session->get( $cart_item_key.'_the_date') );
}
}

add_action( 'woocommerce_add_order_item_meta', 'the_date_order_meta_handler', 1, 3 );

function the_date_force_individual_cart_items($cart_item_data, $product_id)
{
$unique_cart_item_key = md5( microtime().rand() );
$cart_item_data['unique_key'] = $unique_cart_item_key;

return $cart_item_data;
}

add_filter( 'woocommerce_add_cart_item_data','the_date_force_individual_cart_items', 10, 2 );

InformationsquelleAutor Eyal Avitan | 2015-06-09

Schreibe einen Kommentar