2013-11-07 3 views
0

WooCommerce имеет класс «get_shipping_to_display()» в /wp-content/plugins/woocommerce/classes/class-wc-order.php, который держит вывод $ 36 в моих счетов-фактур (с использованием печати счета-фактуры Список & упаковки плагин) в качестве значения для доставки ... независимо от того, какая доставка на самом деле.Заменить WooCommerce класса

Я сузил его до этого класса, так как использование «get_shipping()» отображает фактическую стоимость доставки.

Я не хочу изменять основные файлы WooCommerce (чтобы впоследствии не возникать проблемы с обновлениями), так как мне нужно заменить этот класс моим собственным классом в functions.php, чтобы я мог попытаться и сузить вниз, что вызывает проблему ... и как это будет выглядеть?

ответ

1

Последняя строка в функции get_shipping_to_display() является:

return apply_filters('woocommerce_order_shipping_to_display', $shipping, $this); 

Это означает, что если вы создаете фильтр woocommerce_order_shipping_to_display вы можете в конечном итоге выход все, что вы хотите (хотя технически содержимое этой функции все равно будет работать первым). Переменная $shipping содержит текстовый вывод, который вы видите сейчас, и $this будет иметь все свойства этого класса, включая порядок $id, $status и т. Д., Которые вы могли бы использовать для выполнения любых поисков/вычислений, которые вы хотите.

+0

Спасибо - я, должно быть, пропустил эту линию, чтобы я мог зацепиться за нее. Я просто все еще смущен, почему код WooCommerce по умолчанию этого объекта порождает стоимость доставки в 36 долларов, но объект $ order из шаблона выводит правильную цену ... Что-то еще на другой день, я полагаю. Еще раз спасибо! – Yazmin

+0

Да, звучит странно ... это $ 36 для всех продуктов? Может быть, что-то связано с налогами/комиссионными за обработку? – doublesharp

+0

Я так и думал, но не мог найти ссылку на ссылку в 36 долларов в бэкэнде где-нибудь ... Еще раз спасибо! – Yazmin

Смежные вопросы