Что мне нужно сделать: я хочу выполнить несколько проверок продукта, прежде чем он будет добавлен в корзину. Точнее: я хочу сравнить продукт, который я собираюсь добавить в корзину, с уже добавленными, чтобы увидеть, есть ли какие-то конфликты. Пример. Допустим, у нас есть товар с названием «Обе туфли» и продукт «Левая обувь». Пользователь добавляет в корзину «левую обувь». Затем он добавляет «обе туфли». Я хочу напечатать ошибку вместо добавления «обеих туфлей»: извините, но вы не можете добавить обе туфли, если вы добавили левую обувь в корзину. Если вы хотите купить «обе туфли», сначала удалите «левую обувь».
Я просмотрел class-wc-cart.php и обнаружил перехватчик действия в строке 811, но уже слишком поздно! Это после того, как товар был добавлен
"do_action ('woocommerce_add_to_cart', $ cart_item_key, $ product_id, $ amount, $ вариация_id, $ вариация, $ cart_item_data);
Метод add_to_cart начинается со строки 705. http://wcdocs.woothemes.com/apidocs/source-class-WC_Cart.html#705 < / а>
Как можно подключить мою функцию "менеджер конфликтов продуктов" до строки 801, без взлома woocommerce?
Спасибо!
if(!do_action( 'woocommerce_before_add_to_cart', $cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data )) { return false; }
И использовалadd_action ('woocommerce_before_add_to_cart','add_to_cart_conflict_manage',10,6);
в моем functions.php - person Sergiu-Antonin Ghita   schedule 20.01.2013// This is supposed to handle product conflicts and check if user already has access to the product // $product_conflict_error = apply_filters( 'woocommerce_before_add_to_cart', $cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data,$product_data); if (product_conflict_error) { $woocommerce->add_error( __($product_conflict_error, 'woocommerce') ); return false; }
- person Sergiu-Antonin Ghita   schedule 21.01.2013