这是我的ipn。当PayPal交易完成时向用户发送邮件的php。
问题是,我还需要更改WP数据库中订单的状态,而不仅仅是发送电子邮件。
我知道独一无二的$code
该事务的变量(整数)(我在发送表单时保存了它,并且用户重定向以在PayPal页面上完成该过程),PayPal正在将其发送回ipn。自定义字段内的php文件$_POST[\'custom\']
.
那么ipn.php (交易成功时,PayPal以notify\\u url访问)如下所示:
<?php
$req = \'cmd=_notify-validate\';
foreach ($_POST as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}
// post back to PayPal system to validate
$header .= "POST /cgi-bin/webscr HTTP/1.0\\r\\n";
$header .= "Content-Type: application/x-www-form-urlencoded\\r\\n";
$header .= "Content-Length: " . strlen($req) . "\\r\\n\\r\\n";
$fp = fsockopen (\'ssl://www.sandbox.paypal.com\', 443, $errno, $errstr, 30);
// CUSTOM VARIABLE
$code = $_POST[\'custom\'];
if (!$fp) {
// ERROR
} else {
$email = "[email protected]" ;
$subject = "Test" ;
$message = "Your code is {$code}" ;
mail($email, $subject, $message, "From:" . $email);
fclose ($fp);
}
因此,电子邮件发送正常,代码值与预期一致。
但是,我还需要根据每个用户(post类型)唯一的$代码从WP数据库获取用户电子邮件,然后更改db中订单的状态。
我知道怎么做,但问题是WP没有加载,我无法访问数据库来执行这些操作。
如何做到这一点?
我的意思是,如何在这里访问WP db?:
} else {
// BEFORE SENDING I NEED TO ACCESS WP DB HERE...
// AND THEN SEND THE EMAIL
$email = "[email protected]" ;
$subject = "Test" ;
$message = "Your code is {$code}" ;
mail($email, $subject, $message, "From:" . $email);
fclose ($fp);
}