【问题标题】:Woocommerce 3.8 changed price not showing change in frontendWoocommerce 3.8 更改价格未显示前端更改
【发布时间】:2020-06-09 04:17:21
【问题描述】:

我有所有产品的价格更新,以便将商店价格与 Web 服务 XML 同步。这是更新价格的部分。它每小时运行一个服务器 cronjob。问题是,虽然我可以看到价格已更新,但在 wp-admin 编辑产品页面、管理产品列表中,它仍然显示旧价格。

$product = new WC_Product( $pid );
update_post_meta($pid, '_regular_price', $set_price);
update_post_meta($pid, '_price', $set_price);
$product->set_regular_price($set_price);
$product->set_price($set_price);
$product->save();

我在这里做错了什么?

只是我刚刚注意到的更新,例如在设置了 sale_price 的产品上,在管理员编辑页面上一切正常,但在管理员列表产品页面和前端,销售价格显示为常规价格。

经过更多挖掘,问题似乎与保存指令有关。所有字段都正确填充了更改,所以如果我去编辑产品页面并添加更改,即在正常价格中添加 0,然后假设所做的更改保存它。

有没有一种方法可以让我在编辑产品页面上按下保存按钮时看到 wordpress/woocomerce 执行的查询?

【问题讨论】:

    标签: php wordpress woocommerce


    【解决方案1】:

    是的,当您以编程方式更改产品价格时,这是 WooCommerce 的缓存问题。

    不确定您是否已解决,我的问题与您的问题相同,我使用 WC 挂钩以编程方式更新价格,但相关产品滑块中的价格未更新。

    我通过在我的主题中添加以下代码来解决这个问题:

    // Handling price caching
    add_filter( 'woocommerce_get_variation_prices_hash', 'add_price_multiplier_to_variation_prices_hash', 99, 3 );
    function add_price_multiplier_to_variation_prices_hash( $price_hash, $product, $for_display ) {
        $price_hash[] = get_price_multiplier();
        return $price_hash;
    }
    

    所有学分都属于这个post,您可以获取更多关于为什么使用它的信息。

    希望它对遇到相同问题的人有所帮助。祝你有美好的一天!

    【讨论】:

      【解决方案2】:

      是的,听起来像是缓存问题……

      清除 WordPress 缓存插件中的缓存

      如果您在网站上使用 WordPress 缓存插件,则需要清除插件缓存。大多数缓存插件都允许您从插件的设置页面轻松执行此操作。

      清除 WP Rocket 中的缓存

      WP Rocket 是市场上最好的 WordPress 缓存插件。使用 WP Rocket 的最佳之处在于它会在后台主动构建您的 WordPress 缓存,因此您的用户始终会获得缓存版本。

      它还使得一键清除缓存文件变得非常容易。

      只需转到设置 » WP Rocket页面,然后点击仪表板标签下的“清除缓存”按钮。

      WP Rocket 现在将为您清除所有缓存文件。

      【讨论】:

      • 不是缓存问题,没有设置缓存插件。
      • @IdeiasnaMargem 在大多数情况下,问题与缓存有关,所以请您清理缓存并检查一下。
      • 清理浏览器缓存没有任何区别,还是一样,我也没有安装任何缓存插件。这不是缓存问题。
      猜你喜欢
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      • 2015-10-10
      • 2016-03-29
      • 2020-08-16
      • 2021-11-23
      • 2016-05-31
      • 1970-01-01
      相关资源
      最近更新 更多