Переопределение файлов woocommerce из папки includes

#wordpress #woocommerce

#wordpress #woocommerce

Вопрос:

Я напрямую изменил class-wc-checkout.php файл из includes папки в плагине woocommerce, чтобы добавить пользовательские line item meta данные. Есть ли какой-либо способ override class-wc-checkout.php файл из папки my-theme как мы переопределяем файлы шаблонов в woocommerce?

Комментарии:

1. Я нахожусь в аналогичной ситуации, мне нужно изменить apply_coupon функцию в woocommerce/includes/class-wc-cart.php . Предоставленных перехватов недостаточно, и этот файл нельзя переопределить. Есть ли какой-либо другой способ переопределить эту функцию без простого редактирования исходного файла плагина?

Ответ №1:

У меня была такая же проблема. Мне не нужны обзоры на моем сайте, поэтому я скопировал то, что хотел удалить, из файла внутри includes папки и скопировал это в свой functions.php файл следующим образом:

 // Remove reviews from WooCommerce

if (! function_exists( 'woocommerce_default_product_tabs')) {
    function woocommerce_default_product_tabs($tabs = array()) {
    }
}
  

У меня работает!

Ответ №2:

Только файлы папки Templates можно переопределить, перенеся их в вашу дочернюю тему.

Для всех других файлов, таких как includes folder files, вы можете либо отредактировать их, либо использовать для этого хуки и фильтры.

Ответ №3:

Я не слишком уверен, что вы редактируете для плагина Woocommerce, но да, вы можете переопределить плагин woocommerce, добавив эти хуки и фильтры в свой functions.php файл в вашей теме:

http://docs .woothemes.com/document/hooks/

Ответ №4:

Пример

Вам нужно отредактировать файл: /plugins/woocommerce/includes/shortcodes/class-wc-shortcode-products.php

Скопируйте этот файл в themes/YOURTHEME/inc/class-wc-shortcode-products.php

Добавить в function.php: require 'inc/class-wc-shortcode-products.php';

Комментарии:

1. Только файлы папки Templates можно переопределить, перенеся их в вашу дочернюю тему.

Ответ №5:

Что, кажется, работает для меня, так это поместить файл сюда:

 /wp-content/themes/YOURTHEME/includes/class-wc-checkout.php
  

Разница между другим предложением и моим заключается в том, что у меня нет папки ‘woocommerce’ в пути.

Комментарии:

1. Неправильный путь. Отсутствует woocommerce/ после YOURTHEME/

Ответ №6:

Да, вы должны иметь возможность сделать это, загрузив в эту папку

/wp-content/themes/YOURTHEME/woocommerce/includes/class-wc-checkout.php

Комментарии:

1. Смотрите комментарии designtocode и Khurram — к сожалению, так не работает