@mrWan

Удаляю хук раньше чем он появляется(Wordpress). Ребят, как лучше сделать?

хук здесь '\wp-content\themes\Impreza\framework\functions\ajax\cform.php'
в нем:
add_action( 'wp_ajax_nopriv_us_ajax_cform', 'us_ajax_cform' );
add_action( 'wp_ajax_us_ajax_cform', 'us_ajax_cform' );
function us_ajax_cform() { foo }

а плагин соответственно тут '\wp-content\plugins\myform\myform.php'
в нем:
/*
Plugin Name: test
Description: test
Version: demo
Author: test@test.test
*/
 remove_action('wp_ajax_nopriv_us_ajax_cform', 'us_ajax_cform' );
remove_action('wp_ajax_us_ajax_cform', 'us_ajax_cform' );

выходит что хук срабатывает, а потом удаляется. Можно ли в моем файле плагина(myform.php) переопределить очередь?
  • Вопрос задан
  • 82 просмотра
Пригласить эксперта
Ответы на вопрос 2
kumaxim
@kumaxim
Web-программист
Тебе нужно смотреть в приоритеты. попробуй следующим образом:
<?php
/*
Plugin Name: test
Description: test
Version: demo
Author: test@test.test
*/

function remove_us_ajax_cform_by_toster_plugin() {
if ( has_action( 'wp_ajax_nopriv_us_ajax_cform', 'us_ajax_cform' ) ) {
		remove_action('wp_ajax_nopriv_us_ajax_cform', 'us_ajax_cform' );
	}

	if ( has_action( 'wp_ajax_us_ajax_cform', 'us_ajax_cform' ) ) {
		remove_action('wp_ajax_us_ajax_cform', 'us_ajax_cform' );
	}
}

add_action( 'wp_ajax_nopriv_us_ajax_cform', 'remove_us_ajax_cform_by_toster_plugin', 0 );
add_action( 'wp_ajax_us_ajax_cform', 'remove_us_ajax_cform_by_toster_plugin', 0 );
Ответ написан
OtshelnikFm
@OtshelnikFm Куратор тега WordPress
Обо мне расскажет yawncato.com
Если в add_action не указан приоритет - то он = 10
Удалять надо используя этот же приоритет:
remove_action('wp_ajax_nopriv_us_ajax_cform', 'us_ajax_cform', 10 );
remove_action('wp_ajax_us_ajax_cform', 'us_ajax_cform' , 10);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы