WooCommerce覆盖添加到购物车按钮



我是WP和其中编码的新手,如果这是一个愚蠢的问题,请原谅。

我想运行一个函数,当客户单击"添加到购物篮"按钮时,该函数将返回TRUE或FALSE值。

我的问题是

  1. 单击"添加到购物篮"时,我如何找到运行的函数是什么以及在哪里
  2. 当WooCom升级时,我如何确保我所做的工作不会被重写

Thanx

如果你是WordPress的新手,你可能不知道钩子。

WordPress挂钩是可以更改默认功能的功能。

因此,回答您的第二个问题——如何确保您的代码不会被重写——只需在主题函数.php文件中使用Action和Filter挂钩。通过这种方式,你可以更新wooccommerce插件,而不必担心你的自定义功能会被破坏。

Woocomerce使用add_to_cart()函数将产品添加到购物车中。这个函数已经有钩子,可以修改默认功能。有关此功能的更多信息-链接。正如您在呼叫挂钩部分看到的,有六个挂钩。我不知道在添加到购物车的过程中如何正确地返回true或false,因为如果出现问题,add_to_cart()函数会抛出异常错误。

但如果你尝试使用WordPress挂钩,在你的主题函数.php文件中,代码应该是这样的

// define the woocommerce_add_to_cart callback 
function action_woocommerce_add_to_cart( $array, $int, $int ) { 
// make action magic happen here... 
}; 
// add the action 
add_action( 'woocommerce_add_to_cart', 'action_woocommerce_add_to_cart', 10, 3 ); 

你能提供更多信息说明你为什么要这么做吗?

根据您的情况使用'woommerce_ad_to_cart'挂钩。

// define the woocommerce_add_to_cart callback 
function action_woocommerce_add_to_cart( $cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data ) { 
$vendor = get_post_meta( $product_id, 'vendor', true );
if($vendor === 'something') {
return false; //you should return (throw new Exception)
}
}; 
// add the action 
add_action( 'woocommerce_add_to_cart', 'action_woocommerce_add_to_cart', 10, 6 ); 

最新更新