Добавление текста до и после цены в WooCommerce без учета продуктов по подписке - PullRequest
3 голосов
/ 08 мая 2019

В WooCommerce я использую следующий код для добавления текста вокруг отображаемой цены товара («Аренда:» и «/ день»), например:

function cp_change_product_price_display( $price ) {
    echo 'Rent: ' . $price . '/day';    
}
add_filter( 'woocommerce_get_price_html', 'cp_change_product_price_display' );
add_filter( 'woocommerce_cart_item_price', 'cp_change_product_price_display' );

Я также использую плагин "YITH WooCommerce Subscription"и проблема с моим кодом.Теперь в пакетах подписки у меня есть одна из следующих цен:

  • Аренда: $ 20/7 дней / день
  • Аренда: $ 80 / месяц / день.

Как исключить продукты из подписки или категорию подписок из моего кода, чтобы избежать этой проблемы?

Ответы [ 2 ]

1 голос
/ 08 мая 2019

Вы можете добавить условие, чтобы проверить, является ли текущий продукт подпиской или нет. Пример.

function cp_change_product_price_display( $price, $instance ) {
    if ( 'yes' === $instance->get_meta( '_ywsbs_subscription' ) ) {
        return $price;
    }
    return 'Rent: ' . $price . '/day';
}

add_filter( 'woocommerce_get_price_html', 'cp_change_product_price_display', 10, 2 );

А для корзины:

function cp_change_product_price_display_in_cart( $price, $cart_item, $cart_item_key ) {
    $product = $cart_item['data'];
    if ( 'yes' === $product->get_meta( '_ywsbs_subscription' ) ) {
        return $price;
    }
    return 'Rent: ' . $price . '/day';
}

add_filter( 'woocommerce_cart_item_price', 'cp_change_product_price_display_in_cart', 10, 3 );
1 голос
/ 08 мая 2019

Следующее исключает продукты подписки WooCommerce…

add_filter( 'woocommerce_get_price_html', 'change_product_price_display', 10, 2 );
add_filter( 'woocommerce_cart_item_price', 'change_product_price_display', 10, 2 );
function change_product_price_display( $price, $product ) {
    if( ! in_array( $product->get_type(), array('subscription', 'subscription_variation', 'variable_subscription') ) )
        echo 'Rent: ' . $price . '/day';    
}

Итак, вам нужно выяснить, какие типы продуктов для подписки YITH WooCommerce, и установить их в этом коде.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...