因此,如果我看到其中一种产品,我会登录,找到该产品,并将标签更改为“最后机会”,这会提醒我的用户该商品几乎缺货,因此您应该在它消失之前购买它。
这很好,但这是一项多余的任务,我希望可以自动化。
我可以创建一个 webhook 来自动将此标签应用于库存数量不足的任何产品吗?看起来它应该是 WooCommerce 的原生功能,但我没有看到任何地方可以做到这一点。
伪代码:
IF PRODUCT QUANTITY = 'low'
ADD TAG 'Last Chance' TO PRODUCT
https://github.com/woocommerce/woocommerce/blob/master/includes/wc-stock-functions.php
我们在哪里找到包含一些动作钩子的函数
wc_trigger_stock_change_notifications()
// No stock
function action_woocommerce_no_stock( $wc_get_product ) {
// make action magic happen here...
}
add_action( 'woocommerce_no_stock', 'action_woocommerce_no_stock', 10, 1 );
// Low stock
function action_woocommerce_low_stock( $wc_get_product ) {
// make action magic happen here...
}
add_action( 'woocommerce_low_stock', 'action_woocommerce_low_stock', 10, 1 );
// On backorder
function action_woocommerce_product_on_backorder( $array ) {
// make action magic happen here...
}
add_action( 'woocommerce_product_on_backorder', 'action_woocommerce_product_on_backorder', 10, 1 );
woocommerce_low_stock
和CRUD 对象
function action_woocommerce_low_stock( $wc_get_product ) {
// Product set tag id(s), multiple IDs can be added, separated by a comma
$new_tag_ids = array( 'YOUR TAG ID', 'ANOTHER TAG ID' );
$wc_get_product->set_tag_ids( $new_tag_ids );
// OPTIONAL: Set category ids
//$wc_get_product->set_category_ids( array( 39, 2 ) );
// Save
$wc_get_product->save();
}
add_action( 'woocommerce_low_stock', 'action_woocommerce_low_stock', 10, 1 );
注) 如果您不仅想为产品添加新标签,还想保留现有标签。
替换:
// Product set tag id(s), multiple IDs can be added, separated by a comma
$new_tag_ids = array( 'YOUR TAG ID', 'ANOTHER TAG ID' );
$wc_get_product->set_tag_ids( $new_tag_ids );
与:
// Get current tag id(s)
$current_tag_ids = $wc_get_product->get_tag_ids();
// Product set tag id(s), multiple IDs can be added, separated by a comma
$new_tag_ids = array( 'YOUR TAG ID', 'ANOTHER TAG ID' );
$wc_get_product->set_tag_ids( array_unique( array_merge( $current_tag_ids, $new_tag_ids ), SORT_REGULAR ) );