预定的销售已结束,但在查看产品时,可变产品似乎仍在销售 - Woocommerce

Posted

技术标签:

【中文标题】预定的销售已结束,但在查看产品时,可变产品似乎仍在销售 - Woocommerce【英文标题】:Scheduled sale ended, but variable product still appears to be on sale when viewing the product - Woocommerce 【发布时间】:2018-04-08 01:32:16 【问题描述】:

重现此问题的步骤:

创建可变产品 为变体设置销售价格 为变体设置销售计划 等到结束日期之后 转到前端,查看产品(或产品列表),看到销售徽章和销售价格仍然可见 将产品添加到购物车,打开购物车并查看价格是否正确(已恢复为正常价格) 如果您在 wp-admin 中手动更新产品,问题就解决了(但这确实违背了预定销售的目的)

我正在使用 Woocommerce v2.6.14 和 Wordpress v4.7.6。

如果我尝试在产品视图中检查$product->is_in_stock(),我会得到1(不正确)。 如果我将此产品添加到购物车并检查相同的内容,我会得到0(正确)。

因此,问题在于在销售结束日期后不会自动更新变体价格

我非常感谢每一个建议! :) 谢谢!

其他信息:

这是 wp-admin 在一个产品的销售日期到期后显示价格的图像。

销售价格在添加到购物车之前仍保存在 WC 变量对象中。将产品添加到购物车后,最小和最大变化销售价格与正常价格相同,一切正常。

如果我使用$product->get_price_html();,我会在添加到购物车操作之前得到错误的值,如果我使用$product->get_price();,我会得到正确的值。

更新: 在我将 WC 版本更改为 2.7.0 RC 1 后,价格又回到了正确的价格,但更新 WC 搞砸了很多其他的事情,所以更新不是一个选项。当预定的销售结束时,有些东西没有正确更新,我不知道是什么。

【问题讨论】:

您是否尝试过切换主题和/或禁用插件以查看是否还有其他问题?常用的 Wordpress 调试。 我不建议您更新 WooCommerce,但它仍然有 6 个多月的时间,并且 woo 3.2.1 已经上线,并且许多功能已被修改和修复。 您是否尝试过从 wp_options 表或 WooCommerce 工具中删除所有价格缓存? @DerekNolan,是的,我试过了,但它似乎是 Woocommerce 错误。 @RaunakGupta,我尝试从 WC 系统状态 -> 工具中删除 Woocommerce 和 WP 瞬变,但它没有解决我的问题。 【参考方案1】:

woocommerce_scheduled_sales 事件触发了预定销售产品的实际定价变化。此事件应每天运行一次,但可能不会发生。 要查找网站 WP Cron 事件,您可以使用以下插件:

https://wordpress.org/plugins/wp-crontrol/

通过此插件,您可以立即运行任何 cron 事件。您应该找到 woocommerce_scheduled_sales 并运行它。

您也可以在函数主题中使用此代码每六个小时运行一次事件。

<?php

function myprefix_custom_cron_schedule( $schedules ) 
    $schedules['every_six_hours'] = array(
        'interval' => 21600, // Every 6 hours
        'display'  => __( 'Every 6 hours' ),
    );
    return $schedules;

add_filter( 'cron_schedules', 'myprefix_custom_cron_schedule' );


//Schedule an action if it's not already scheduled
if ( ! wp_next_scheduled( 'myprefix_wc_scheduled_sales' ) ) 
    wp_schedule_event( time(), 'every_six_hours', 'myprefix_wc_scheduled_sales' );



///Hook into that action that'll fire every six hours
 add_action( 'myprefix_wc_scheduled_sales', 'myprefix_run_wc_scheduled_sales' );
//create your function, that runs on cron
function myprefix_run_wc_scheduled_sales() 
    //your function...
    wc_scheduled_sales();

【讨论】:

以上是关于预定的销售已结束,但在查看产品时,可变产品似乎仍在销售 - Woocommerce的主要内容,如果未能解决你的问题,请参考以下文章

将折扣百分比添加到销售的可变产品

如何通过亚马逊的 MWS API 获取产品信息?

SQL查询显示已在一个国家销售而不是另一个国家的产品

基于百度地图的产品销售的单位查看功能设计与实现

MySQL学习_查看各仓库产品的销售情况_20161102

更新 WooCommerce 可变产品变化库存数量问题