web-dev-qa-db-ja.com

致命的なエラー:未定義関数wp_mail()の呼び出し

私はプラグインを使用しています wordpress-simple-Paypal-shopping-cart 私のカートの要件。 IPNを使用して支払いが行われたときに、このプラグインを通じて電子メールを送信しようとしています。

私のコード:

$invoiceProducts = $_SESSION['simpleCart'];
    if(isset($invoiceProducts) && !empty($invoiceProducts)){
        $html = renderHTML($invoiceProducts);
        generatePDF($html);
        unset($invoiceProducts);
    }

function renderHTML($param){
    $IPN = $_POST;

    $name = $IPN['first_name'];
    $donationAmount = $IPN['payment_gross'];
    $contributorsEmail = $IPN['payer_email'];
    $contributorsPhone = $IPN['payer_email'];
    $contributorsAddr = $IPN['address_name'] . ', ' . $IPN['address_city'] . ', ' . $IPN['address_country'];

    //We will need to shoot email to laura of successfull payment.
    $to = '[email protected]';
    $subject = 'Donation made on your website';
    $message = '';
    $message .= '<html><body>';
    $message .= '<p>You have received a contribution from<strong>'.$name.'</strong> of <strong>'.$donationAmount.'</strong></p>';
    $message .= '<p>Contributor Information:</p>';
    $message .= '<ul>';
    $message .= '<li>Name:'.$name.'</li>';
    $message .= '<li>Amount:'.$donationAmount.'</li>';
    $message .= '<li>Email:'.$contributorsEmail.'</li>';
    $message .= '<li>Address:'.$contributorsAddr.'</li>';
    $message .= '</ul>';
    $message .= '</body></html>';

    wp_mail( $to, $subject, $message, $headers, $attachments );
}

しかし、この関数が呼び出されると、このエラーが発生します。Fatal error: Call to undefined function wp_mail()

私はなぜ私がこのエラーを受けているのか知っています、それは私のプラグインがwp_mail()ではなく最初にロードされているということです。

私の場合、どうやって最初にwp_mail()を呼び出してから私のプラグインを呼び出すことができますか?

3
Niraj Chauhan

wp_mail()wp-includes/pluggable.phpで定義されています。このファイルはプラグインがロードされた後、フックplugins_loadedが起動される前にロードされます。
だから答えはこうです:待って。

add_action( 'plugins_loaded', 'renderHTML' );

付記: プレフィックス あなたの関数名とあなたのグローバル変数。

4
fuxia