我已经设置了一个带有“联系表7”和“ Woo Commerce”的网站,并且在显示所有产品的商店页面中,我设法添加了一个带有以下代码“下载手册”的按钮:
add_action('woocommerce_after_shop_loop_item', 'rox_loop_download_button', 5);
function rox_loop_download_button() {
global $product;
$product_id = $product->get_id();
{ ?>
<div class="button-pdb">
<a href="">download brochure</a></div>
<?php }
}
现在,我希望在用户发送查询表单时默认使用产品名称。
我尝试了以下代码,但它似乎仅在产品单页上起作用:functions.php
add_filter( 'woocommerce_product_tabs', 'product_enquiry_tab' );
function product_enquiry_tab( $tabs ) {
$tabs['test_tab'] = array(
'title' => __( 'Enquire about Product', 'woocommerce' ),
'priority' => 50,
'callback' => 'product_enquiry_tab_form'
);
return $tabs;
}
function product_enquiry_tab_form() {
global $product;
//If you want to have product ID also
//$product_id = $product->id;
$subject = "Enquire about ".$product->post->post_title;
echo "<h3>".$subject."</h3>";
echo do_shortcode('[contact-form-7 id="19" title="Contact form 1_copy"]'); //add your contact form shortcode here ..
?>
<script>
(function($){
$(".product_name").val("<?php echo $subject; ?>");
})(jQuery);
</script>
<?php
}
?>
“联系表格7”的代码:
<p>Your Name (required)<br />
[text* your-name] </p>
<p>Your Email (required)<br />
[email* your-email] </p>
<p class="product_subject">Subject<br />
[text your-subject class:product_name] </p>
<p>Your Message<br />
[textarea your-message] </p>
<p>[submit "Send"]</p>
答案 0 :(得分:1)
安装插件:
在联系表单中添加代码
<label>Product Name
[dynamictext product-name "CF7_get_post_var key='title'"]</label>
自定义代码
在function.php中添加主题代码。
注意:请更改CF7的简码。
add_filter('the_content', 'dc_cf7_form_to_all_products');
function dc_cf7_form_to_all_products($content) {
if ( class_exists( 'woocommerce' ) && is_product() && is_main_query() ) { // Check suggested by: https://pippinsplugins.com/playing-nice-with-the-content-filter/
return $content . '[contact-form-7 id="54" title="Demo Form"]';
}
return $content;
}
答案 1 :(得分:1)
我正在使用我的网站之一。我不需要其他插件也不需要JavaScript,我只是将Woocommerce产品标题作为GET参数发送到联系表单页面。 参见https://contactform7.com/getting-default-values-from-the-context/
第1步
将产品标题发送到联系表。
在主题子目录woocommerce / single-product / add-to-cart / simple.php中,我将“添加到购物车”按钮更改为“请求”按钮。产品ID和产品标题作为URL参数添加到URL。重要提示:“名称”属性必须与联系表单中配置的字段相同。
<button type="submit" value="<?php echo esc_attr( $product->get_id() ); ?>"
class="single_add_to_cart_button button alt"><?php echo _e( 'Request', 'framework' ); ?></button>
<input type="hidden" name="product-id" value="<?php echo absint( $product->get_id() ); ?>" />
<input type="hidden" name="contact-subject" value="<?php echo esc_html( $product->get_title() ) ?>" />
第2步
以紧凑格式7获取并使用产品标题。
我已经这样配置了表单(在/wp-admin/admin.php?page=wpcf7的后端)(默认值:get是从URL参数提取值的东西):
<div>
[hidden product-id default:get]
[text* contact-subject default:get id:subject class:required placeholder "Betreff Ihrer Nachricht"]
</div>
所以我的联系页面的网址如下:
https://www.***.de/contact/?product-id=603&contact-subject=productTitle#contactform
也许您可以调整我的方法并根据需要进行修改。 (我目前不需要添加到购物车功能。)