Добавить текст под именем элемента на основе настраиваемого поля флажка в оформлении заказа Woocommerce - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть пользовательская функция, которая проверяет, установлен ли флажок, и если да, то добавляет «с освобождением НДС» рядом с ценой. Если он не отмечен, он добавляет «inc vat» рядом с ценой. Это прекрасно работает, и мой код:

add_filter( 'woocommerce_get_price_html', 'conditional_price_suffix', 20, 2 );
function conditional_price_suffix( $price, $product ) {
   $isTaxRelefe = get_post_meta($product->id, 'disability_exemption', true);

   if ($isTaxRelefe == 'yes')
       $price .= ' ' . __('with vat relief');

    else $price .= ' ' . __('inc vat');

   return $price;
}

Что мне нужно сделать сейчас, это добавить еще одну функцию, предназначенную для страницы оформления заказа, которая говорит, что если флажок установлен, показывать текст под названием продукта, но я изо всех сил. Сначала я хотел отредактировать / checkout / review-order, поэтому я добавил оператор if else для вывода чего-то рядом с названием продукта. Я добавил:

$isTaxRelefe = get_post_meta($product->id, 'disability_exemption', true);

if ($isTaxRelefe == 'yes') {
   $content .= 'VAT RELIEF AVAILABLE';    
}

но это ничего не дает, я пробовал разные варианты, переходя на эхо-выражения и т. Д., Но не повезло. Я уверен, что просто пишу это неправильно. Кто-нибудь может посоветовать? Я не очень разбираюсь в функциях WordPress, так как если бы я мог написать одну, предназначенную только для страницы оформления заказа, я не уверен, как она определяет, куда вывести ваши. утверждение if else казалось очевидным выбором, но безуспешно.

1 Ответ

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

Ваш код немного устарел, и вы должны использовать $product->get_id() начиная с Woocommerce 3 в первой функции вместо $product->id в функции get_post_meta().

Вы также можете использовать вместо WC_Data метод get_meta() непосредственно из объекта продукта.

Ниже приведен ваш повторный код с дополнительной подключенной функцией, которая будет условно отображать «НДС, ДОСТУПНЫЙ» текст под названием продукта на странице оформления заказа:
(без переопределения шаблона review-order.php)

add_filter( 'woocommerce_get_price_html', 'conditional_price_suffix', 20, 2 );
function conditional_price_suffix( $price, $product ) {
    if ( $product->get_meta('disability_exemption') === 'yes')
        $price .= ' ' . __('with vat relief');
    else
        $price .= ' ' . __('inc vat');

   return $price;
}

add_filter( 'woocommerce_checkout_cart_item_quantity', 'custom_text_below_checkout_product_title', 20, 3 );
function custom_text_below_checkout_product_title( $quantity_html, $cart_item, $cart_item_key ){
    if ( $cart_item['data']->get_meta('disability_exemption') === 'yes' )
        $quantity_html .= '<br>' . __('VAT RELIEF AVAILABLE');

    return $quantity_html;
}

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

enter image description here

enter image description here

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