-1

我已经设置了一个带有“联系表 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> 

https://imgur.com/a/wciND2M

4

2 回答 2

1

安装插件:

  • 联系表格 7 (CF7) 插件
  • 联系表格 7 动态文本扩展插件

在联系表格中添加代码

<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;
}
于 2019-01-29T10:04:32.653 回答
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>


所以我的联系页面的 URL 如下所示:

https://www.***.de/contact/?product-id=603&contact-subject=productTitle#contactform


也许您可以调整我的方法并根据您的需要进行修改。(我目前不需要添加到购物车功能。)

于 2019-01-29T10:37:01.487 回答