📅  最后修改于: 2023-12-03 14:53:47.005000             🧑  作者: Mango
在使用 Contact Form 7 和 WooCommerce 进行电子商务网站开发时,您可能需要将产品名称动态传递给 Contact Form 7 表单字段。这样,您就可以将产品名称包含在用户提交的表单中,以便更好地了解用户的需求。
在下面的代码片段中,我们将展示如何使用 PHP 将产品名称传递给 Contact Form 7 表单字段,并将其与 WooCommerce 集成。此代码将通过添加自定义函数到 WordPress 主题的 functions.php
文件中来实现。
<?php
// 添加产品名称字段到 Contact Form 7
add_filter('wpcf7_contact_form_default_pack', 'add_product_name_field');
function add_product_name_field($contact_form) {
$product_name = get_the_title(); // 获取当前产品的名称(可以根据需要修改)
$additional_fields = [
'product_name' => $product_name
];
$properties = [
'additional_settings' => 'on_sent_ok: "location.replace(\'https://yourdomain.com/thank-you-page/\');"'
];
$form = [
'product_name' => [
'label' => '产品名称', // 自定义字段标签
'type' => 'text', // 字段类型为文本框
'default' => $product_name, // 在字段中设置默认产品名称
'readonly' => true // 设置字段为只读
]
];
$contact_form['form'] = array_merge($additional_fields, $contact_form['form']);
$contact_form['properties'] = array_merge($properties, $contact_form['properties']);
$contact_form['form'] = array_merge($form, $contact_form['form']);
return $contact_form;
}
// 在 Contact Form 7 的邮件正文中包含产品名称
add_filter('wpcf7_mail_components', 'add_product_name_to_mail_body');
function add_product_name_to_mail_body($components) {
$product_name = isset($_POST['product_name']) ? sanitize_text_field($_POST['product_name']) : '';
if ($product_name) {
$components['body'] = str_replace('[product_name]', $product_name, $components['body']);
}
return $components;
}
?>
上述代码中的 add_product_name_field
函数用于向 Contact Form 7 添加自定义的产品名称字段。该字段将显示为只读文本框,其中包含当前产品的名称,默认情况下将传递至表单。您可以根据需要根据 WooCommerce 产品结构和需求修改该函数中获取产品名称的方法。
add_product_name_field
函数还将通过 additional_settings
属性将 "on_sent_ok" 重定向设置添加到 Contact Form 7 表单。您需要将 https://yourdomain.com/thank-you-page/
修改为您的自定义感谢页面的 URL。
add_product_name_to_mail_body
函数用于在 Contact Form 7 的邮件正文中包含产品名称。在这个函数中,我们从表单中获取产品名称,并将其替换为邮件正文中的 [product_name]
占位符。
请将代码片段中的 yourdomain.com
替换为您自己的域名。
通过将产品名称传递给 CF7 Woocommerce 表单字段,您可以更好地了解用户提交表单的产品背景和需求。这对于电子商务网站和产品询价等场景非常有用。记得在 WordPress 主题的 functions.php
文件中添加上述代码,并根据您的需求和网站结构进行适当的修改。