自动化特色产品 woocommerce


Automated featured product woocommerce

这是我在这个伟大社区的第一篇文章。通常我会找到大大小小的问题的所有答案,但我很遗憾地说这对我来说是一个谜:(

我需要创建某种自动化功能,每天一次随机选择 3 种产品并将它们标记为我的 WooCommerce 商店中的特色。第二天删除这 3 个并选择 3 个新的一次。

可悲的是,由于任务的共谋(对于我而言(,我没有代码可以显示/开始。

我唯一能找到的是它必须在一些元信息中定义:

$args = array(  
    'post_type' => 'product',  
    'meta_key' => '_featured',  
    'meta_value' => 'yes',
)

真的希望有人能帮助我:)

我认为最简单的解决方案是使用瞬态。

这里有一个建议,但首先有几个警告。

  1. 如果没有人访问您的网站,则瞬态并不总是在正确的时间清除,但如果这是一个问题,您可以设置 ping 服务以每天自动访问您的网站。

  2. 您无法精确控制瞬态何时清除...例如:每天下午3点。

  3. 此建议要求您重新设计主题显示这 3 种特色产品的方式。 因为我们实际上并不是在寻找_featured元。

functions.php代码:

function so_35312355_get_daily_featured_products(){
    // Get any existing copy of our transient data
    if ( false === ( $daily_featured_products = get_transient( 'daily_featured_products' ) ) ) {
        // It wasn't there, so regenerate the data and save the transient
        $args = array(
            'post_type' => 'product',
            'post_status'    => 'publish',
            'orderby'        => 'rand',
            'posts_per_page' => '3',
        );
        $daily_featured_products = new WP_Query( $args );
        set_transient( 'daily_featured_products', $daily_featured_products, 24 * HOUR_IN_SECONDS );
    }
    return $daily_featured_products;
}

或者,您可以运行 2 个查询。一个用于重置所有特色元键,另一个用于更新每个随机 3 个产品的元键。

更高级和更完整的方法是使用 cron 作业。看看法典,了解如何安排活动,但根据您的需要,瞬态可能就足够了。