我正在使用PayPal IPN处理程序获取IPN,然后发送电子邮件。现在我正在测试它试图访问我的数据库的“付费”列,以确保事务尚未处理过。但是,$ wpdb似乎没有正确返回内容。我能够在另一个表单上使用$ wpdb将内容插入到数据库中,但是我无法将其恢复出来。我尝试过get_var,get_row和get_results,并尝试在get_var的情况下将它们作为对象,数组或变量进行访问。
$paidstatus = $wpdb->get_var("SELECT paid FROM wp_bbbiller WHERE txn_id = '$txn_id'");
$subject = 'Test e-mail';
$message = "Thank you for your purchase $payer_email. Your total was $".$payment_amount." for $duration hour
with $usercount users. Previously paid: $paidstatus";
mail ($payer_email , $subject , $message);
现在$ paidstatus在电子邮件中显示为空白。当我使用get_row进行设置时,我尝试使用print_r($ paidstatus),并且在电子邮件中显示为“1”,即使数据库值为0。
答案 0 :(得分:1)
是的,使用get_results有效!我能够像这样访问变量
$paidstatus = $wpdb->get_results("SELECT paid FROM wp_bbbiller WHERE txn_id = '$txn_id'");
foreach ($paidstatus as $status) {
$subject = 'Test e-mail';
$message = "Thank you for your purchase $payer_email. Your total was $".$payment_amount." for $duration hour
with $usercount users. Previously paid: ".$status->paid;
mail ($payer_email , $subject , $message);
}
另外,get_row也可以这样工作
$paidstatus = $wpdb->get_row("SELECT paid FROM wp_bbbiller WHERE txn_id = '$txn_id'");
$subject = 'Test e-mail';
$message = "Thank you for your purchase $payer_email. Your total was $".$payment_amount." for $duration hour
with $usercount users. Previously paid: ".$paidstatus->paid;
mail ($payer_email , $subject , $message);
答案 1 :(得分:0)
我认为您需要使用get_results。然后使用while循环将数据库中的状态设置为插入电子邮件的变量。
另外,您希望在您的邮件中说明您当前拥有变量$paidstatus
的内容。您不希望像您的数据库一样存储0或1吗?您需要创建一个if语句,以根据数据库中的状态设置变量的值。