使用动态字段预填充数据库中的 CF7 数据
Prefill CF7 data from the database using a dynamic field
我正在尝试创建一种方法,通过该方法我可以从联系表 7 保存的联系人数据库中检索数据,并在用户先前从下拉菜单中选择后预填写字段PayPal支付方式和填写表格,没有进行实际支付。
接下来的流程是这样的:
如果用户已选择使用 PayPal 付款并填写了整个表格,则“已付款”项目将为 0,并且不会重定向到 PayPal 页面
然后,当用户returns到活动卡片时,我们将显示之前填写的所有字段和“pay with paypal”按钮以完成paypal支付。所以“付费”项目将是 1.
到目前为止,我使用了以下插件来保存已完成的表单 Advanced CF7 DB 和 Contact Form 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;
}
};
最终我设法让它按我想要的方式工作,但是使用“联系表单 7 的重定向”插件仍然存在重定向问题。
始终在第一个案例 (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;
};
我正在尝试创建一种方法,通过该方法我可以从联系表 7 保存的联系人数据库中检索数据,并在用户先前从下拉菜单中选择后预填写字段PayPal支付方式和填写表格,没有进行实际支付。
接下来的流程是这样的: 如果用户已选择使用 PayPal 付款并填写了整个表格,则“已付款”项目将为 0,并且不会重定向到 PayPal 页面 然后,当用户returns到活动卡片时,我们将显示之前填写的所有字段和“pay with paypal”按钮以完成paypal支付。所以“付费”项目将是 1.
到目前为止,我使用了以下插件来保存已完成的表单 Advanced CF7 DB 和 Contact Form 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;
}
};
最终我设法让它按我想要的方式工作,但是使用“联系表单 7 的重定向”插件仍然存在重定向问题。
始终在第一个案例 (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;
};