首页 > 解决方案 > 在 Woocommerce 中自动将每个购买的产品设置为“特色”

问题描述

在 Woocommerce 中,我希望当订单很疯狂时,将购买的产品自动设置为“精选” (我对各种订单的默认状态为“保留”

所以基本上,如果订单是“暂停”,则订购的产品应该变成“精选”。

我为什么要这个?因为我没有按照 WC 的预期方式使用“特色”的东西,而是展示了售罄产品的自定义标签(因为我在售罄的产品在商店中显示了很多天后)购买)。

因此,我不想在每个产品售出后手动将其标记为特色产品,而是希望自动完成。

这可以在我的子主题的functions.php中使用一些WC钩子来完成吗?欢迎任何帮助。

标签: phpwordpresswoocommerceproductorders

解决方案


当订单状态设置为“保留”时,以下代码将设置为“特色”所有购买的产品:

add_action('woocommerce_order_status_on-hold', 'order_status_on_hold_featured_products', 20, 2);
function order_status_on_hold_featured_products( $order_id, $order ) {
    foreach ( $order->get_items() as $item_id => $item ) {
        $product = $item->get_product();
        $product->set_featured(true);
        $product->save();
    }
}

代码位于您的活动子主题(或活动主题)的 function.php 文件中。它应该有效。


推荐阅读