【问题标题】:Set automatically as "featured" every purchased product in Woocommerce在 Woocommerce 中自动将每个购买的产品设置为“特色”
【发布时间】:2018-09-06 22:44:17
【问题描述】:

在 Woocommerce 中,我想在订单疯狂时,自动将购买的产品设置为“精选”(我对各种订单的默认状态是 “暂停” ).

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

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

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

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

【问题讨论】:

  • 希望您至少尝试自己编写代码。我建议您通过 Google 或通过搜索 SO 进行一些额外的研究,然后进行尝试。如果您仍然遇到问题,请返回您的代码并在原始问题的正文中说明您尝试过的内容。

标签: php wordpress woocommerce product orders


【解决方案1】:

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

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 文件中。它应该可以工作。

【讨论】:

  • 非常感谢你,伙计!它按预期工作。但是,当我将订单状态从“暂停”修改为“处理中”和/或“已完成”时,我希望订购产品的“精选”状态变回“未精选”。请您相应地调整您的功能好吗?我欠你很多时间!
  • 哦,当我将订单状态设置为“处理中”和/或“已完成”时,我还希望此类订购产品的目录可见性自动更改为“隐藏”。请您在更新的功能中也添加这个,好吗?你让我很开心:)
  • @RobertPopescu 请提出一个新问题(添加指向此答案的链接),详细说明您实际拥有什么以及您希望拥有什么。然后在完成后通知我,我会回答......
猜你喜欢
  • 1970-01-01
  • 2017-11-03
  • 1970-01-01
  • 2019-05-01
  • 1970-01-01
  • 2017-09-30
  • 2019-12-29
  • 2019-08-16
  • 1970-01-01
相关资源
最近更新 更多