wordpress 在WooCommerce中更改库存时自动更改产品标签

vbopmzt1  于 2023-05-16  发布在  WordPress
关注(0)|答案(1)|浏览(164)

我有一个WooCommerce商店,每天我都会检查我的电子邮件,其中列出了所有库存低的产品。
因此,如果我看到这些产品之一,我登录,找到该产品,并更改标签为“最后机会”,这提醒我的用户,该项目几乎脱销,所以你应该购买它之前,它的消失。
这很好,但这是一个多余的任务,我希望可以自动化。
我可以创建一个webhook,自动将此标签应用于库存中库存量较低的任何产品吗?它似乎应该是WooCommerce的原生功能,但我看不到任何地方可以做到这一点。
伪代码:

IF PRODUCT QUANTITY = 'low'
    ADD TAG 'Last Chance' TO PRODUCT
p1iqtdky

p1iqtdky1#

库存变化事件、触发电子邮件和添加订单备注后的可用挂钩位于
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_stockCRUD Objects in 3.0

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 ) );

相关问题