Intereting Posts
Добавить настраиваемое поле в область администрирования без использования метабокса Условный add_filter для загрузки каталога? Как оценивать сообщение с Admin Side / Manually? Плагин не может быть активирован, потому что он вызвал фатальную ошибку. (Нет ошибки??) Ошибка HTTP после завершения загрузки видео размером более 64 МБ -> После поднятия предела загрузки вручную в файле wp-config Содержимое по умолчанию для сообщения в одной категории? Как получить название пользовательской таксономии Лучшее место для wp_register_script () и wp_register_style () Есть ли плагин, который предоставляет редактор стиля stackoverflow для wordpress? Изображения всех сломанных после миграции и обновления Остановите плагин в процессе активации, когда некоторая версия WP не будет выполнена, а затем сообщите об ошибке в admin_notices action hook Аутентификация пользователя для пользовательского типа сообщения Ожидание ошибки оператора из php-цикла с использованием плагина ACF Могу ли я просмотреть собственный исходный код wordpress php на моем размещенном веб-сервере? Как запустить WordPress из другого места в том же домене

Использование крючков с дополнительными параметрами

Я хочу добавить свою собственную функцию к уже существующему крюку. Вот определение:

do_action( 'woocommerce_before_single_product_summary' ); 

Исходная функция, использующая ее, выглядит так:

 add_action( 'woocommerce_before_single_product_summary', 'woocommerce_template_single_title', 5 ); 

Поскольку я не хочу касаться темы, ни шаблонов Woocommerce, я хочу добавить свою собственную функцию, но с более низким приоритетом и тремя дополнительными параметрами:

 add_action( 'woocommerce_before_single_product_summary', 'my_own_function', 6, 3); 
  • Является ли это возможным?
    • Если да, где эти параметры определены?
  • Если не,
    • Возможно ли использовать глобальные значения?
    • Есть ли другое решение моей проблемы?

Solutions Collecting From Web of "Использование крючков с дополнительными параметрами"

поскольку

 do_action( 'woocommerce_before_single_product_summary' ); 

не имеет дополнительных входных аргументов, таких как:

 do_action( 'woocommerce_before_single_product_summary', $args1, $args2, $args3 ); 

то ваш обратный вызов будет всегда вызываться без каких-либо входных аргументов.

 function my_own_function () { // ... } 

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

Но вы можете с уверенностью изменить приоритет:

 add_action( 'woocommerce_before_single_product_summary', 'my_own_function', 5 ); 

Если вы можете изменить его, например, в своей дочерней теме, чтобы:

 do_action( 'woocommerce_before_single_product_summary', $args1, $args2, $args3 ); 

то вы можете использовать:

 add_action( 'woocommerce_before_single_product_summary', 'my_own_function', 5, 3 ); 

с обратным вызовом:

 function my_own_function ( $args1, $args2, $args3 ) { // ... you have now access to $args1, $args2, $args3 }