Контактная форма 7 - действие wpcf7_admin_after_additional_settings не работает в классе - PullRequest
0 голосов
/ 05 февраля 2019

У меня возникает странная проблема при разработке расширения Contact form 7 с использованием концепции PHP oop.

wpcf7_admin_after_additional_settings действие не работает, пока я помещаю функцию в класс. Если я помещаю функцию этого действия вне класса, то она работает нормально.

Мой код следующий.

<?php 

    // This function is working if you put outside the class
    function action_wpcf7_admin_after_additional_settings( $cf7pp_admin_after_additional_settings ) 
    { 
        echo "Outside the class";
    }
    class Cf7pe_Admin 
    {

        function __construct() 
        {
            add_filter( 'wpcf7_editor_panels',  array($this,'cf7pe_admin_editor_pannels') );                              
            add_action( 'wpcf7_admin_after_additional_settings',   array($this,'action_wpcf7_admin_after_additional_settings'), 10, 1 ); 

        }

        // This funciton is not working within class
        function action_wpcf7_admin_after_additional_settings( $cf7pp_admin_after_additional_settings ) 
        { 
            echo "Within class";
        }

        function cf7pe_admin_editor_pannels ( $panels ) 
        {   
            $new_page = array(
                    'Stripe' => array(
                            'title' => __( 'Paypal', 'contact-form-7' ),
                            'callback' => 'action_wpcf7_admin_after_additional_settings'
                    )
            );  
            $panels = array_merge($panels, $new_page);  
            return $panels; 
        }
    }

$cf7pe_admin = new Cf7pe_Admin();

Пожалуйста, предложите, что делать, если внутри функции класса это работает.Пожалуйста, дайте ваш ценный вклад для этого.

1 Ответ

0 голосов
/ 05 февраля 2019

Попробуйте этот код.Вы пропустили array($this, в 'callback' =>

class Cf7pe_Admin 
{   

    function __construct() 
    {
        add_filter( 'wpcf7_editor_panels',  array($this,'cf7pe_admin_editor_pannels') );                              
        add_action( 'wpcf7_admin_after_additional_settings',   array($this,'action_wpcf7_admin_after_additional_settings'), 10, 1 ); 
    }

    // This funciton is not working within class
    function action_wpcf7_admin_after_additional_settings( $cf7pp_admin_after_additional_settings ) 
    { 
        echo "Within class";
    }

    function cf7pe_admin_editor_pannels ( $panels ) 
    {   
        $new_page = array(
                'Stripe' => array(
                        'title' => __( 'Paypal', 'contact-form-7' ),
                        'callback' => array($this,'action_wpcf7_admin_after_additional_settings')
                )
        );  
        $panels = array_merge($panels, $new_page);  
        return $panels; 
    }
}

$cf7pe_admin = new Cf7pe_Admin();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...