Я знаю, что есть много вопросов об ошибке
Вызов неопределенной функции 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";
}
?>