Intereting Posts
Оптимизация итерации через массив с использованием foreach-циклов Аутентификация (претензии) к Sharepoint / Office356 через PHP и SOAP Многобитовая обрезка в PHP? Проблема с форматированием почты PHP. Почему заканчиваются строки заголовка CRLF в HTML-письме в Outlook? Поиск класса, на который нажата кнопка Развертывание приложения Symfony2 с ошибками fosuserbundle php Codeigniter – ошибка при выполнении библиотеки Subquery.php PHP не может писать вне корня документа независимо от того, что Проверьте, существует ли имя пользователя PDO PHP startup mongo: невозможно инициализировать модуль Php. У вашей установки PHP, похоже, отсутствует расширение MySQL, которое требуется WordPress Архивы даты для пользовательских типов сообщений В чем преимущество использования Heredoc в PHP? Laravel SwiftMailer: ожидаемый код ответа 250, но получил код «530», с сообщением «530-5.5.1 Требуется аутентификация Преимущества pdo над mysql_ * или mysqli_ *

Как изменить действие woocommerce_before_cart

Я пытаюсь сделать мой шаблон шаблона корзины woocommerce как полный макет 12 столбцов.

В существующем макете используется столбец col-sm-8 bootstrap. Мне нужно изменить его на col-sm-12.

<main class="main col-sm-8" role="main"> <div class="page-header"> <h1>Cart</h1> </div> <div class="woocommerce">...</div> <div class="woocommerce-info">...</div> <div class="cart-collaterals"> // shipping code etc. </div> </main> 

Я проверил соответствующие woo-шаблоны, показанные здесь , и скопировал шаблон cart.php в мою тему, чтобы переопределить. Однако, похоже, мне нужно изменить действие woocommerce_before_cart чтобы изменить макет <main> и вставить класс col-sm-12 . Я нашел соответствующие действия на этой странице woocommerce.

Я вижу из шаблона cart.php действие, вызываемое перед элементом <form> как показано ниже:

 global $woocommerce; wc_print_notices(); do_action( 'woocommerce_before_cart' ); ?> <form action="<?php echo esc_url( WC()->cart->get_cart_url() ); ?>" method="post"> <?php do_action( 'woocommerce_before_cart_table' ); ?> <table class="shop_table cart" cellspacing="0">enter code here 

Я новичок в php, мой вопрос в том, как изменить результат этого действия, чтобы я мог изменить макет на 12 столбцов?

Woocommerce вставляет содержимое в cart.php в page.php в корень вашей темы. 🙂

Не похоже, что woocommerce создает крючки действий для «woocommerce_before_cart» или «woocommerce_before_cart_table», вы можете проверить это с помощью has_action (). Они, похоже, существуют в качестве предложений для разработчиков. Должны быть права удалить их из cart.php (хотя разработчики могут иметь их там для будущих выпусков или популярных плагинов), или если вы хотите их использовать, добавьте это в свои темы functions.php.

 add_action('woocommerce_before_cart', 'sample', 1); function sample() { echo '<h1>hello</h1>'; } 

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

 add_action('woo_commerce_before_cart', 'sample', X); 

«sample» – это имя вызываемой функции, а X – ее приоритет. Вы можете либо изменить выход этой функции, либо добавить к ней еще одну функцию.

Для тех, кто работает с дочерней темой, обратите внимание, что иногда ваша родительская тема уже переопределяет шаблон cart.php, особенно сильно настраиваемый, например, продукты Themeforest. Поэтому не копируйте исходный файл cart.php из Woocommerce, скопируйте его из шаблона родительской темы.