Вызов неопределенной функции add_action () - плагин Wordpress с виджетом - PullRequest
0 голосов
/ 01 июня 2019

Я знаю, что есть много вопросов об ошибке

Вызов неопределенной функции add_action ()

, но ни один из этих ответов не помог мне.Я кодирую плагин для WordPress, который включает виджет для контактной формы.Если пользователь вошел в систему, он появится на боковой панели.Пользователь должен поместить свои данные в форму и, отправив, он отправит мне письмо со своим содержанием.

Мой widget.php включает в себя форму ввода, и когда я нажимаю кнопку отправки, он приводит меня к моему send.php, где я хочу использовать функцию wp_get_current_user().Я поместил это в функцию, потому что без нее выдает ту же ошибку, что и раньше.Я использую эту функцию, чтобы user_login и user_email автоматически помещали ее в электронное письмо.

Я знаю, что моя функция с wp_get_current_user() загружается до pluggable.php.

Поэтому я попытался включить pluggable.php до wp_get_current_user, который не работал.Затем я прочитал, что могу использовать action='admin-post.php' в своей форме и поместить скрытый ввод с name='action' type='hidden' value='something' и добавить его в ловушку, где функция перенаправляет его на мой send.php.Ну, это тоже не сработало ..

Я был бы очень рад, если бы кто-нибудь мог сказать мне, где я делаю ошибки.

widget.php:

<?php

function widget( $args, $instance )
{
    if (is_user_logged_in())
    {
        <form id='form_logged_in' action="<?php echo plugin_dir_url(__FILE__) . 'send.php' ?>" method='POST' class='ajax_logged_in'>  
             <input type="text" name="subject_logged_in" id="subject_logged_in" placeholder="Betreff">          
             <textarea id="message_logged_in" name="message_logged_in" placeholder="Deine Nachricht..."></textarea>
             <div id="answer_logged_in"></div>
             <button type="submit" id="submit_logged_in">Absenden!</button>
        </form>
        <?php       

    }
}
function kontaktformular_symbol_widget() {
    register_widget( 'symbol_widget' );
}

add_action( 'widgets_init', 'kontaktformular_symbol_widget' );

send.php:

<?php

if(isset($_POST['subject_logged_in'], $_POST['message_logged_in']))
{      
       function getUser() 
       {
            global $user;
            wp_get_current_user();
            echo $user->user_login;
       }
       add_action('plugins_loaded', 'getUser'); 

 /*    $subject = $_POST['subject_logged_in'];
       $message = $_POST['message_logged_in'];

       $mailTo = "Vero@localhost";
       $headers = 'From: ' . $user->user_email;
       $body = "Du hast eine Nachricht von " . $user->user_email " erhalten" . "\n\n" . $message;

       mail($mailTo, $subject, $body, $headers);  
       echo "Vielen Dank für deine Nachricht! log in";        
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...