仅在星期二显示 Woocommerce 演示商店通知

Show Woocommerce demo store notice only on tuesdays

我想仅在商店关闭时显示 woocommerce 商店通知 demo_store。这是每个星期二。我考虑先获取日期,然后删除操作并在星期二重新添加。我很想学习如何做到这一点。

function is_store_closed() {
    
    // weekday[0] =  "Sunday";
    // weekday[1] = "Monday";
    // weekday[2] = "Tuesday";
    // weekday[3] = "Wednesday";
    // weekday[4] = "Thursday";
    // weekday[5] = "Friday";
    // weekday[6] = "Saturday";
    
         return (date('true', strtotime($date)) == 2);
    }    
    
    function conditional_store_notice() {
        // Remove default 'woocommerce_demo_store' notice
        remove_action( 'wp_footer', 'woocommerce_demo_store' );
    
        // Add back the woocommerce_demo_store' notice, but only if tuesday
        if ( ! is_store_closed() ) {
            add_action( 'wp_footer', 'woocommerce_demo_store' );
        }
    
    }
    add_action( 'wp_footer', 'conditional_store_notice' );

您可以从过滤器中删除 html,理想情况下它会从渲染中删除内容。

function is_store_closed() {
    $timestamp = time();
    return ( date( 'w', $timestamp ) === '2' );
}

add_filter( 'woocommerce_demo_store', function( $html, $notice ){
    if( !is_store_closed() ){
        return '';
    }

    return $html;
}, 10, 2 );

此代码删除一周中其他日子的商店通知内容。