私はプラグインを使用しています 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()
を呼び出してから私のプラグインを呼び出すことができますか?
wp_mail()
はwp-includes/pluggable.php
で定義されています。このファイルはプラグインがロードされた後、フックplugins_loaded
が起動される前にロードされます。
だから答えはこうです:待って。
add_action( 'plugins_loaded', 'renderHTML' );
付記: プレフィックス あなたの関数名とあなたのグローバル変数。