我正在尝试创建一种方法,通过该方法,我可以检索由联系人表7保存的联系人数据库中的数据,并在用户先前从下拉菜单中选择PayPal付款方法并填写表单后预先填充字段,而无需继续进行实际付款。
流程如下:如果用户已选择与贝宝支付,并填写了整个表单,“支付”项目将是0,没有任何重定向到PayPal页面,然后,当用户返回到事件卡,我们将显示以前填写的所有字段和“支付与贝宝”按钮,以完成贝宝付款。因此,“付费”项将为1。
到目前为止,我已经使用以下插件保存了完成的表单高级CF7 DB和联系表单CFDB7的数据。使用其中的一个或其他人,对我的目标无关紧要。
到目前为止,当用户选择PayPal时,我可以使用以下代码填充动态和隐藏字段dynamichidden paid "“,但没有太多成功:
add_action('wpcf7_posted_data', 'course_registration_actions_paypal', 10, 1);
function course_registration_actions_paypal($stato0){
$paypal["paymentmethod"] = '0';
$stato0[“paid”] = '0';
$stato1[“paid”] = '1';
if (isset($paypal[“paymentmethod]) && $stato0[“paid”] === '0') {
return $stato0;
} else {
return $stato1;
}
};发布于 2021-04-12 21:35:18
最终,我设法让它按我想要的那样工作,但是使用“contact Form7重定向”插件仍然存在重定向问题。
总是在第一个案例(paypal)上重定向,而不是区分。
我认为问题出在“wpcf7_posted_data”上,因为没有重定向,它们工作得很好。
这是我的代码:
add_action('wpcf7_posted_data','course_registration_actions_persist_payment_status', 10, 1);
function course_registration_actions_persist_payment_status($record){
$current_user = wp_get_current_user();
$userId = get_field('id__pro', 'user_' . $current_user->ID);
$eventId = get_field('id', false);
$records = WPCF7_ContactForm::find([
'ID-Course' => $eventId, // 2
'ID-User' => $userId, // 82994
]);
if ($record['paymentmethod'][0] == 0) {
// Paypal
$record['paymentmethod'] = 0;
// No Paid
$record['paid'] = 0;
} else {
// Bank
$record['paymentmethod'] = 1;
// Paid
$record['paid'] = 1;
}
return $record;
};https://stackoverflow.com/questions/66846205
复制相似问题