витрина_sticky_add_to_cart отказывается удаляться

#wordpress #woocommerce

#wordpress #woocommerce

Вопрос:

Почти закончил мою дочернюю тему для витрины магазина WooCommerce.

Под нижним колонтитулом на страницах товаров находится блок, который у меня нет желания сохранять. Так же, как я сделал с несколькими другими посторонними элементами разметки, я отследил действие и удалил его:

 remove_action( 'storefront_after_footer', 'storefront_sticky_single_add_to_cart');
  

… Он все еще отображается на странице.

Я даже попробовал несколько случайных вещей, которые нашел:

 add_filter ('storefront_sticky_add_to_cart', '__return_false');
  

и

 function cleanup_parent_filters()
{
    //...
    remove_action( 'storefront_after_footer', 'storefront_sticky_single_add_to_cart');
}
add_action( 'wp_loaded', 'cleanup_parent_filters');
  

Безрезультатно.

Это действительно раздражает больше всего. Я могу удалить все do_action( 'storefront_after_footer' ); из шаблона, поскольку на самом деле мне просто все равно, что он там есть, но теперь мне нужно знать, почему это из принципа работает не так, как ожидалось.

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

1. Для информации: В меню «Настройщик» > «Страница товара» есть опция включения / отключения функции «Липкое добавление в корзину».…

Ответ №1:

попробуйте

 remove_action( 'storefront_after_footer',
               'storefront_sticky_single_add_to_cart', 999 );
  

remove_action требуется значение приоритета, поскольку оно использовалось для добавления действия. Из документов

Важно: Чтобы удалить перехват, аргументы $function_to_remove и $priority должны совпадать при добавлении перехвата. Это касается как фильтров, так и действий. При сбое удаления предупреждение выдано не будет.

И почему 999? Из исходного кода.

Отказ от ответственности: я не тестировал это.