【问题标题】:Call to undefined function wp_mail in a plugin在插件中调用未定义的函数 wp_mail
【发布时间】:2014-08-03 20:04:15
【问题描述】:

我正在尝试制作一个插件,该插件列出数据库中的所有用户,并为每个用户提供一个向他们发送电子邮件的按钮。因此,我可以使用他们的用户名获取他们的电子邮件地址的唯一方法是使用单击按钮后给出的 $POST 。使用他们的用户名,我可以搜索 db 表以检索电子邮件。这里的问题是页面将重新加载,并且函数 wp_mail 在 pluggable.php 加载其函数之前被调用。 这是帖子:

if ($_POST) {
    sendEmail(current(array_keys($_POST)));
    echo "<script type='text/javascript'>alert('Email is sent!')</script>";
}

这里是函数:

function sendEmail($username) {
    global $wpdb;
    $user = $wpdb->get_row("SELECT email, firstname from wp_site_users WHERE username ='" . $username ."'" , ARRAY_A);
    $mail = $wpdb->get_row("SELECT * from wp_send_email WHERE id='1'", ARRAY_A);

    $to = $user['email'];
    $subject = 'Hello!';
    $message = $mail['header'] . $user['firstname'] ."\n";
    $message .= $mail['content'] . $username . "\n";
    $message .= $mail['footer'];

    $headers = 'From: '.'test@test.com'."\r\n";
    echo $to . "<br>" . $subject . "<br>" . $message . "<br>" . $headers; 
    wp_mail($to, $subject, $message, $headers);
}

我尝试在标题处添加add_action( 'plugins_loaded', 'sendEmail' );,但这似乎不起作用。 有什么想法吗?

【问题讨论】:

  • 你需要在你的插件中包含 wp_config.php,因为这个错误是在 wp_config 超出范围时发生的。
  • 您已将 javascript 标签添加到此问题,因此它可能与 ajax 相关,因此:wordpress.stackexchange.com/questions/45154/… 对您有什么帮助吗?

标签: javascript php plugins wordpress


【解决方案1】:

加载所有必要文件后调用 wp_mail:

add_action( 'plugins_loaded', 'plugins_load' );
        
function plugins_load() {
    require MY_PLUGIN_PATH . '/includes/main.php';
        
    $headers = array('Content-Type: text/html; charset=UTF-8');
    wp_mail('youremail@gmail.com', 'Thank you', 'Message', $headers);
        
}

【讨论】:

    【解决方案2】:

    您在加载 wp_mail 之前调用它..

    只需包含 wp-load.php 并继续!

    require('../../../wp-load.php');
    

    require('wp-load.php');
    

    取决于脚本的加载方式。

    【讨论】:

      猜你喜欢
      • 2015-09-26
      • 2020-04-24
      • 2011-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-13
      • 2012-10-31
      • 2023-03-07
      相关资源
      最近更新 更多