Проверьте, включены ли цены на товары в Woocommerce 3+ - PullRequest
0 голосов
/ 22 декабря 2018

Как программно проверить, включает ли цена продукта налог?Я проверил ссылку на WC_Product, но ничего подобного не смог найти.

Ответы [ 2 ]

0 голосов
/ 22 декабря 2018

Вы просто будете использовать специальную условную функцию wc_prices_include_tax() в выражении IF:

if( wc_prices_include_tax() ) {
    // Price include tax
} else {
    // Price doesn't include tax
}

Он проверит, уплачивают ли налогивключены в Woocommerce, и если общие настройки ваших продуктов включают налог или нет.

Например, wc_prices_include_tax() используется wc_get_price_including_tax() aWC_Product функция цены (не метод) , использовала себя в wc_get_price_to_display() функции цены, когда цены на продукты должны отображаться, включая налоги на страницах продуктов…

Если цены на продукты должны отображаться без учета налогов на страницах продуктов, wc_get_price_to_display() будет использовать wc_get_price_excluding_tax()

wc_get_price_to_display(), wc_get_price_including_tax() и wc_get_price_excluding_tax() имеют 2 аргумента:

$product (обязательно) объект WC_Product
$args (необязательно) массив, содержащий цену продукта и количество

Связанный: Отображение цены продукта Woocommerce с учетом и без учетаx и сумма налога


В Корзине, Оформлении заказа и Заказах есть еще один общий параметр, позволяющий отображать цены с налогами или без них.Чтобы проверить, отображаются ли цены с налогами или без налогов, можно использовать следующее:

if( get_option( 'woocommerce_tax_display_cart' ) ) {
    // Prices displayed including tax
}

Связанные позиции заказа:

0 голосов
/ 22 декабря 2018

Ну продукт не скажет вам, если кто-то заплатил налог с продаж.Для этого вам нужно что-то, связанное с заказом.

Что-то, что имеет заказы и продукты, что-то вроде этого класса:

WC_Order_Item_Product

Для справки

https://docs.woocommerce.com/wc-apidocs/source-class-WC_Order_Item_Product.html#262-270

Это имеет по крайней мере 3 соответствующихметоды:

//Get subtotal tax.
WC_Order_Item_Product::get_subtotal_tax();

//Get total tax.
WC_Order_Item_Product::get_total_tax();

Get taxes.
WC_Order_Item_Product::get_taxes();

Обратите внимание, что они не являются "статичными". Мне просто нравится, как это выглядит, и на странице документа PHP это обычно делается: -p

Теперь какты добираешься оттуда, где находишься, я не знаю.То есть, как вы получаете один из этих мистических WC_Order_Item_Product объектов.

Удачи!

...