Php 如何通过联系表7获得woocommerce产品名称

Php 如何通过联系表7获得woocommerce产品名称,php,wordpress,woocommerce,contact-form-7,Php,Wordpress,Woocommerce,Contact Form 7,我已经设置了一个带有联系表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(); { ?>

我已经设置了一个带有联系表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 }
}
以及联系方式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> 
安装插件:

联系表格7 CF7插件 联系表单7动态文本扩展插件 在联系人表单中添加代码


我正在使用我的网站之一。我不需要其他插件或JavaScript,我只需将Woocommerce产品标题作为GET参数发送到联系人表单页面。 看

第一步

将产品名称发送到联系人表单。 在我的主题子目录woocommerce/single product/add to cart/simple.php中,我将add to cart按钮改为request按钮。产品ID和产品标题作为URL参数添加到URL中。重要提示:“name”属性必须与联系人表单中配置的字段相同

<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() ) ?>" />

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

什么是您真正需要的?在商店页面上,当您显示所有产品时,我添加了一个“下载”按钮并将该按钮与CF7链接,当提交表单时,我希望表单在我收到的电子邮件上显示产品名称。您可以使用jQuery完成此操作。使用隐藏表单字段并将标题设置为特定字段。然后您可以从邮件配置中设置该值。在一个页面上,我显示了多个产品,我使用一个按钮和一个联系人表单,如果我使用[\u post\u title]或[\u post\u url]它会给我页面的url或名称,而不是表格提交的产品名称。我在商店页面上使用它,而不是在产品单页面上。在一个页面上,我显示了多个产品,我使用一个按钮和一个联系人表单,如果我使用[\u post\u title]或[\u post\u url]它会给我网页的url或名称,而不是提交表单的产品名称。我在商店页面上使用此选项,而不是在产品单页上使用此选项。请检查第二种最适合的方式。我见过该解决方案,但对于产品单页,我需要一个商店页面的解决方案,其中显示所有产品我不希望用户进入产品页面,我希望他们只需按下商店页面上的按钮,而不必访问product@Fisnik我已经完美地运行了以上代码。你的要求是完全满足。它运行良好,但它给我的是商店页面名称,而不是产品页面名称。如果你能给我你的电子邮件,我会给你发送一些图片和视频,这样你就可以看到我想要的代码工作到某处。这段代码是我在functions.php中添加的。No No Fisnek,我想你误解了我的方法。我会改进我的答案。你的答案可以正常工作,但我只需要一种方法,使此功能可以在我的CF7后端@jasie上工作。你的方法是正确的,但需要在单个页面中添加一个联系人表单,该联系人表单有一个文本字段,该字段已包含当前产品标题。这就是目标。嗯,你的联系人表单中的字段有不同的名称:例如,你的表单中的“你的主题”而不是我的表单中的“联系人主题”。
<label>Product Name
[dynamictext product-name "CF7_get_post_var key='title'"]</label>
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;
}
<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() ) ?>" />
<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