3

有谁知道在使用 WooCommerce 将商品插入购物车之前可以应用过滤器或挂钩来插入功能?我有一个与这篇文章类似的问题:

WordPress。电子商务。添加到购物车之前的操作挂钩

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

我要做的只是显示一个错误,一旦我可以挂钩正确的操作,我将添加逻辑:

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

2 回答 2

3

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

https://github.com/woocommerce/woocommerce/blob/master/includes/wc-template-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 );

如果您在使用上述动作挂钩时仍然遇到问题,请随时向我提供更多细节,我可以尝试引导您完成。祝你好运!

于 2013-04-15T19:21:32.747 回答
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 请求。

于 2016-07-14T12:08:08.457 回答