有没有办法挂钩到WooCommerce BEFORE项目添加到购物车

时间:2013-04-15 01:17:39

标签: wordpress woocommerce

有没有人知道在使用WooCommerce将项目插入购物车之前可以应用于插入功能的过滤器或挂钩?我和这篇文章有类似的问题:

Wordpress. Woocommerce. Action hook BEFORE adding to cart

但OP的评论似乎不起作用或模糊不清我无法让它们起作用,我找不到关于woocommerce_before_add_to_cart的文档。

我正在尝试做的只是显示一个错误,一旦我可以加入正确的操作,我将添加逻辑:

function checkProd(){
global $woocommerce;
$woocommerce->add_error( __('ERROR', 'woocommerce') );
return;
}
add_action( 'woocommerce_variable_add_to_cart', 'checkProd');

2 个答案:

答案 0 :(得分:2)

我为woocommerce钩子找到的最好的资源实际上是存储库本身,它们具有非常好的注释代码,非常易读。

https://github.com/woothemes/woocommerce/blob/master/woocommerce-hooks.php

我确信您尝试在以下某个部分中解决的问题存在解决方案:

/**
 * Product Add to cart
 *
 * @see woocommerce_template_single_add_to_cart()
 * @see woocommerce_simple_add_to_cart()
 * @see woocommerce_grouped_add_to_cart()
 * @see woocommerce_variable_add_to_cart()
 * @see woocommerce_external_add_to_cart()
 */
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
add_action( 'woocommerce_simple_add_to_cart', 'woocommerce_simple_add_to_cart', 30 );
add_action( 'woocommerce_grouped_add_to_cart', 'woocommerce_grouped_add_to_cart', 30 );
add_action( 'woocommerce_variable_add_to_cart', 'woocommerce_variable_add_to_cart', 30 );
add_action( 'woocommerce_external_add_to_cart', 'woocommerce_external_add_to_cart', 30 );


/**
* Cart Actions
*
* @see woocommerce_update_cart_action()
* @see woocommerce_add_to_cart_action()
* @see woocommerce_load_persistent_cart()
*/
add_action( 'init', 'woocommerce_update_cart_action' );
add_action( 'init', 'woocommerce_add_to_cart_action' );
add_action( 'wp_login', 'woocommerce_load_persistent_cart', 1, 2 );

如果您继续遇到上述操作钩子的问题,请随时向我提供更多详细信息,我可以尝试引导您完成。祝你好运!

答案 1 :(得分:0)

我需要在添加到购物车之前做一些操作,所以我这样做了

add_action('init', function(){
    //if user clicked http://example.com/shop/?add-to-cart=42
    if(!is_admin() && isset($_REQUEST['add-to-cart'])){
        //do something
    }
});

$ _ REQUEST用于处理GET和POST请求。