【问题标题】:Display the published time ago of every product on Woocommerce在 Woocommerce 上显示每个产品的发布时间
【发布时间】:2019-03-22 20:24:31
【问题描述】:

下面提到的以下代码,但它在 Woocommerce 单品页面上显示日期:

add_action('woocommerce_single_product_summary','displaying_product_date', 25);

function displaying_product_date() {

    if ( is_product() ) {
        echo the_date('', '<span class="date_published">Published on: ', '</span>', false);
    }
}

我想显示一个产品是多少年前在所有 Woocommerce 商店和档案页面上发布的。

感谢任何帮助。

【问题讨论】:

    标签: php wordpress time woocommerce product


    【解决方案1】:

    以下内容将以天、小时和分钟显示 Woocommerce 产品上的发布时间:

    // Custom function to get the published time of a product
    function get_product_published_time( $product ) {
        $datetime = $product->get_date_created();
        $timezone = $datetime->getTimezone();
        $now_time = new WC_DateTime();
    
        $now_time->setTimezone($timezone);
    
        $timestamp_diff = $now_time->getTimestamp() - $datetime->getTimestamp();
    
        $data = timestamp_to_array( $timestamp_diff );
    
        return sprintf( '<div class="published-time"><small>' . __('Published %s and %s ago', 'woocommerce') . '</small></div>',
            $data['d'] . ' ' . _n( 'day', 'days', $data['d'], 'woocommerce' ) ,
            $data['h'] . ' ' . _n( 'hour', 'hours', $data['h'], 'woocommerce' )
        );
    }
    
    function timestamp_to_array( $timestamp ) {
        $d = floor($timestamp/86400);
        $_d = ($d < 10 ? '0' : '').$d;
    
        $h = floor(($timestamp-$d*86400)/3600);
        $_h = ($h < 10 ? '0' : '').$h;
    
        $m = floor(($timestamp-($d*86400+$h*3600))/60);
        $_m = ($m < 10 ? '0' : '').$m;
    
        $s = $timestamp-($d*86400+$h*3600+$m*60);
        $_s = ($s < 10 ? '0' : '').$s;
    
        return array('d' => $_d, 'h' => $_h, 'm' => $_m, 's' => $_s);
    }
    
    // On woocommerce loop (shop, archives…)
    add_action('woocommerce_after_shop_loop_item','dislay_product_loop_published_time', 20 );
    function dislay_product_loop_published_time() {
        global $product;
    
        echo get_product_published_time( $product );
    }
    
    // On single product pages
    add_action( 'woocommerce_single_product_summary', 'dislay_single_product_published_time', 25 );
    function dislay_single_product_published_time() {
        global $product;
    
        echo get_product_published_time( $product );
    }
    

    代码在您的活动子主题(或活动主题)的 function.php 文件中。经过测试并且可以工作。

    【讨论】:

      猜你喜欢
      • 2018-01-17
      • 1970-01-01
      • 2020-11-12
      • 2012-09-02
      • 2015-08-08
      • 2018-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多