You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PHP代码将指定ID的WooCommerce商品标记为特色商品?

解决WooCommerce通过代码标记商品为特色的问题

以下是针对你遇到的代码失效问题的修正方案及排查要点:

方法一:使用官方推荐的CRUD API(兼容新版WooCommerce)

直接实例化WC_Product在部分场景下可能无法正确处理商品类型(如变体商品),官方推荐用wc_get_product()获取商品对象:

// 目标商品ID
$product_id = 43706;

// 获取商品对象
$product = wc_get_product($product_id);

// 验证商品存在后设置为特色
if ($product && $product->exists()) {
    $product->set_featured(true);
    $product->save();
}

方法二:直接更新Post元数据(快速操作)

原代码的问题在于调用了已弃用的$ecd_product->id属性,改用直接传入商品ID即可:

$product_id = 43706;

// 先验证该ID对应内容为商品
if (get_post_type($product_id) === 'product') {
    // 设置特色商品标记
    update_post_meta($product_id, '_featured', 'yes');
    // 清除商品缓存确保变更立即生效
    wc_delete_product_transients($product_id);
}

常见排查要点

  • 确保代码在WooCommerce初始化后执行:比如放在主题functions.php中,或者挂载到init钩子上,避免在WooCommerce未加载时运行代码。
  • 检查权限:执行代码的用户需要拥有修改商品的权限(如管理员权限)。
  • 清除缓存:WooCommerce会缓存商品数据,修改后需清除站点缓存或调用wc_delete_product_transients()刷新单商品缓存。

内容的提问来源于stack exchange,提问作者Mohamed Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 08:22:14