自动化特色产品woocommerce

时间:2016-02-10 10:16:27

标签: php wordpress woocommerce featured

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

我认为最简单的解决方案是使用transients

这是一个建议,但首先要注意几点。

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

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

  3. 此建议要求您重新设计主题如何显示这3个特色产品。因为我们实际上并没有寻找_featured元。

  4. 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作业。在法典中查看如何schedule an event,但根据您的需要,瞬态可能就足够了。