Доступ к функции из виджета внутри функций wordpress - PullRequest
1 голос
/ 17 июня 2020

У меня есть такой виджет

<?php
/*
Plugin Name: MyWidget
Plugin URI: https:///
Description: 
License: GPL2
*/

// The widget class
class MyWidget extends WP_Widget
{

    // Main constructor
    public function __construct()
    {
        parent::__construct(
            'mywidgert',
            __('MyWidget', 'password_domain'),
            array(
                'customize_selective_refresh' => true,
            )
        );
    }

    public function form($instance)
    {
    }

    // Update widget settings
    public function update()
    {
    }


    public function widget()
    {

    }

    public function get_user_token()
    {
        return $login_token;
    }
}

function register_my_widget()
{
    register_widget('MyWidget');
}

add_action('widgets_init', 'register_my_widget');

Когда я пытаюсь получить доступ к некоторой функции из класса MyWiget внутри другой функции, которая не находится внутри такого класса, как этот

function export_database(){
 $this->get_user_token();
}

Я получил 500 ошибка также я пробовал что-то вроде этого

$widget = new MyWidget();
$widget->get_user_token();

Опять я получил ошибку 500, как получить доступ к моей функции export_database какая-то другая функция из класса MyWidget, пожалуйста, также имейте в виду, что это wordpress, спасибо

1 Ответ

0 голосов
/ 17 июня 2020

Вы можете добиться этого с помощью add_action, сначала вы регистрируете действие до загрузки файлов темы:

<?php
/*
Plugin Name: MyWidget
Plugin URI: https:///
Description: 
License: GPL2
*/

add_action( 'init', array ( 'MyWidget', 'init' ) );

// The widget class
class MyWidget extends WP_Widget
{
    ...
}

Затем вы можете зарегистрировать свое действие в функции построения, как показано ниже:

// Main constructor
public function __construct()
{
    ...
    add_action( 'get_user_token', array ( $this, 'get_user_token' ), 10, 1 );
}

Наконец, вы можете вызвать do_action( 'get_user_token', 50 ); в своей теме или другом плагине.

См. Этот связанный пост: https://wordpress.stackexchange.com/questions/44708/using-a-plugin-class-inside-a-template

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...