我工作的一个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显示为空白电子邮件。 我尝试使用的print_r($ paidstatus),当我有它设置与get_row,它显示了在电子邮件中的“1”,即使数据库值为0。
是使用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);
我认为你需要使用get_results 。 然后用while循环从数据库中插入一个变量到电子邮件将自己的状态。
还什么你想让它在你的消息,你目前拥有的变量说$paidstatus
。 你不会想要一个0或1,像你的数据库是存储你会吗? 您需要创建一个if语句设置取决于其数据库中的状态变量的值。