Добавить пользовательский текст с датами продажи после цены продажи в Woocommerce Один продукт - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть этот код, который добавляет текст после цены продажи, и он генерирует в журнале сообщение об ошибке «неправильно», хотя в файле функций нет ошибки PHP.

Любая идея, почемуэто "жалуется"?Вот код:

add_filter( 'woocommerce_get_price_html', 'sale_dates_after_price', 100, 2 );
function sale_dates_after_price( $price, $product ) {
    $sales_price_from = get_post_meta( $product->id, '_sale_price_dates_from', true );
    $sales_price_to   = get_post_meta( $product->id, '_sale_price_dates_to', true );
    if ( is_single() && $product->is_on_sale() && $sales_price_to != "" ) {
        $sales_price_date_from = date( "j M y", $sales_price_from );
        $sales_price_date_to   = date( "j M y", $sales_price_to );
        $price = str_replace( '</ins>', ' </ins> <span class="sale-dates"><b>offer valid between ' . $sales_price_date_from . ' and ' . $sales_price_date_to . '</b></span>', $price );
    }
    return apply_filters( 'woocommerce_get_price', $price );
}

1 Ответ

0 голосов
/ 21 ноября 2018

Ваш код устарел с некоторыми ошибками и ошибками ... Поскольку вы используете отформатированную продажную цену , для этого есть гораздо лучший способ.Попробуйте следующее:

add_filter( 'woocommerce_format_sale_price', 'sale_dates_after_price', 10, 3 );
function sale_dates_after_price ( $price, $regular_price, $sale_price ) {
    global $product;

    if( ! is_a($product, 'WC_Product') ) 
        return $price;

    $date_from = $product->get_date_on_sale_from();
    $date_to   = $product->get_date_on_sale_to();

    if( is_product() && ! ( empty($date_from) && empty($date_from) ) ) {
        $date_from = date( "j M y", strtotime($date_from) );
        $date_to   = date( "j M y", strtotime($date_to) );
        $price    .= ' <span class="sale-dates"><strong>offer valid between '.$date_from.' and '.$date_to.'</strong></span>';
    }

    return $price;
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы).Проверено и работает.

enter image description here

...