php - 在 Woocommerce 中自动将每个购买的产品设置为“特色”
问题描述
在 Woocommerce 中,我希望当订单很疯狂时,将购买的产品自动设置为“精选” (我对各种订单的默认状态为“保留”)。
所以基本上,如果订单是“暂停”,则订购的产品应该变成“精选”。
我为什么要这个?因为我没有按照 WC 的预期方式使用“特色”的东西,而是展示了售罄产品的自定义标签(因为我在售罄的产品在商店中显示了很多天后)购买)。
因此,我不想在每个产品售出后手动将其标记为特色产品,而是希望自动完成。
这可以在我的子主题的functions.php中使用一些WC钩子来完成吗?欢迎任何帮助。
解决方案
当订单状态设置为“保留”时,以下代码将设置为“特色”所有购买的产品:
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 文件中。它应该有效。
推荐阅读
- c# - 从 DropDownList 值加载 TreeView C# ASP.NET
- .net-core - `dotMemoryUnit` 和 `dotnet test`
- c# - Microsoft SQL Server 和 Microsoft SQL Server Express 接口之间的区别
- java - 如何检查选择 1 在休眠 C3P0 中是否有效?
- swift - SwiftUI 如何在 VNDocumentCameraViewController 上添加覆盖?
- angular - 如何过滤垫扩展面板中的表格?按列
- prestashop - 在 prestashop 页面中插入 JS 脚本
- javascript - 使用可选参数对 Where 子句进行续集
- javascript - 如何在点击反应时将元素添加到数组中?
- c++ - C++ 内存分配器