2017-02-07 6 views
1

Я создал custom Divi module, а затем конвертировал его в плагин. Конструктор страниц Divi сохраняет локальные переменные хранилища, поэтому мой модуль не отображается в списке модулей, пока я не очистил локальное хранилище. Я добавил файл JS, который очищает хранилище и его работы отлично. , но я хочу, чтобы js запускался только при активации и деактивации.Запустить файл JS только при активации и деактивации плагина в WordPress

Ниже Plugin код активации

function angelleye_setup_For_paypal_divi_install() 
    {  
      // trigger our function that registers PayPal for Divi plugin.  
      angelleye_setup_for_paypal_divi();       
    } 
    register_activation_hook(__FILE__, 'angelleye_setup_For_paypal_divi_install'); 

Это, как я добавлять мой файл JS в плагин.

function paypal_divi_clear_local_storage() { 
    wp_enqueue_script('paypal_divi_clear_local_storage', plugins_url('assets/js/clear_local_storage.js',__FILE__));   
} 
add_action('admin_enqueue_scripts', 'paypal_divi_clear_local_storage', 9999); 

Здесь add_action не вызывает функцию активации.

ответ

2

Создать новую функцию, добавить свой собственный вариант и вызывать функцию активации крючке:

Новая функция

register_activation_hook(__FILE__, 'my_plugin_activation'); 
function my_plugin_activation() { 
    add_option('my_plugin_activation','just-activated'); 
} 

Установите ниже код во время действия по включению, это будет работать во время активации:

function mycustom_plugin() 
{ 

    if(is_admin() && get_option('my_plugin_activation') == 'just-activated') 
    { 
     delete_option('my_plugin_activation'); 
     wp_enqueue_script('paypal_divi_clear_local_storage', plugins_url('assets/js/clear_local_storage.js',__FILE__)); 
    } 
} 
add_action('init', 'mycustom_plugin'); 
0

Надеюсь, это может вам помочь.

Пожалуйста, включите эти строки в файл плагина ..

/* 
Plugin Name: Plugin_Name 
*/ 


class Plugin_Name  /* Define the name of the plugin or file */ 
{ 
    public function __construct() 
    { 
    add_action('wp_footer', array($this, 'enqueue_js_files')); 
    } 

    public function enqueue_js_files() 
    { 
    wp_register_script('clear_local_storage', plugins_url('clear_local_storage.js', __FILE__), array('jquery'), '', true); 
    wp_enqueue_script('clear_local_storage'); 
    } 

} 
+0

Спасибо за ответ, но я хочу запустить js только 2 раза, один раз, когда плагин активируется и второй, когда плагин отключается. –

+0

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

+0

Замените строку "add_action" на "register_activation_hook" и "register_deactivation_hook" в моем коде. Я знаю, что я говорю глупо, но давайте попробуем один раз. –