javascript — функция, работающая с существующим хуком, не работает с использованием собственного хука do_action

Я знаю, что add_action используется для вызова функции в месте ловушки. Я использовал add_action, как показано ниже, и он дает мне нужный результат (который является ценой продукта в WooCommerce):

add_action( 'woocommerce_before_variations_form', 'woocommerce_single_variation', 10 );

Я использовал приведенный выше код внутри собственного плагина, который я создал.

Но теперь я хочу, чтобы цена появилась в другом месте. Я прочитал о do_action и узнал, что он используется для создания новых хуков.

Так что я сделал новый крючок, как показано ниже —

do_action('unique_mycustom_hook');

Новый хук хранится внутри «content-single-product.php» внутри папки шаблона Woocommerce.

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

add_action( 'unique_mycustom_hook', 'woocommerce_single_variation', 10 );

Но на этот раз я НЕ получаю никакой информации!

У вас есть идея, почему add_action работал в существующем хуке woocommerce, но не работал в моем новом хуке, созданном с использованием do_action?

Благодарю.


ОБНОВИТЬ —
Я добавляю больше информации по запросу.

Цель моей ловушки в woocommerce — сделать так, чтобы цена продукта отображалась на фиксированной боковой панели. Итак, я сделал <div> раздел внутри файла "content-single-product.php" внутри папки шаблона WooCommerce. Это именно тот код, который я добавил в шаблон woocommerce.

<div class="this_sidebar_is_fixed">
<?php
do_action('unique_mycustom_hook');
?>
</div>

Затем я вызываю хук, используя свой собственный плагин.

Тем не менее это не работает.

1

Решение

Потому что местоположение также важно в зависимости от того, что вы подключаете.
woocommerce_before_variations_form находится на single-product/add-to-cart/variable.php шаблон внутри формы.

Так, например, если вы разместите свой unique_mycustom_hook вне этой формы (или в другом шаблоне) он не будет работать. Это основные причины … Они могут быть и другими.

—- обновлено —-

внутри content-single-product.php ваш do_action('unique_mycustom_hook'); не может работать, потому что он должен быть расположен внутри формы в single-product/add-to-cart/variable.php

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]