【问题标题】:Problem with recaptcha working correctly with a contact form 7recaptcha 与联系表 7 正常工作的问题
【发布时间】:2021-04-07 00:39:28
【问题描述】:

我目前在我们正在构建的客户网站的两种不同页面上使用带有联系表格 7 的 wordpress 和 recaptcha。

  1. Contact form: https://www.alvestadtanken.se/kontakt/(正常工作)
  2. Variable products without price: https://www.alvestadtanken.se/butik/dieseltankar/stationara-dieseltankar-1300-9000-liter/dieseltank-fm-5000-l/(recaptcha dosnt 正确加载,由于缺少值而不会提交)

我尝试了几种不同的方法,并将其归结为唯一的区别是,在页面 2 上,当实际值通过 ajax 请求初始化页面后,我们正在加载联系表单 7(请参见下图中的 pumpalternativ ) 在下拉菜单中选择。我认为在加载联系表 7 后我需要重新加载/设置验证码,但我不知道该怎么做。

    // Displays contact form for variations with no price(0kr) or add to cart button if price exists.
add_filter( 'woocommerce_available_variation', 'empty_and_zero_variation_prices_html', 10, 3);
function empty_and_zero_variation_prices_html( $data, $product, $variation ) {
    if( '0' === $variation->get_price() || '' === $variation->get_price() || 0 == $variation->get_price() ){
        $data['price_html'] = __('<div class="wpcf7-wrapper"><h5 class="text-primary font-weight-bold">Kontakta oss angående produkten</h5> ' . do_shortcode( '[contact-form-7 id="7336" title="Prisförfrågan"]' ) . '</div> ', 'woocommerce');
        $data['is_purchasable'] = false;
    } else {
        $data['price_html'] .= __(do_shortcode( '[add_to_cart_button]' ));
    }
    return $data;
}

欢迎所有想法和帮助。

【问题讨论】:

    标签: php wordpress woocommerce recaptcha contact-form-7


    【解决方案1】:

    按照 WordPress 的工作方式,简码可以做的不仅仅是在代码中呈现标记。具体来说,它可以调用 wp_enqueue_script 之类的函数,这些函数执行诸如在页脚中呈现额外的 javascript 之类的事情,这些 javascript 通常提供用于加载动态添加到页面的表单或准备 Recaptcha 的代码。

    简而言之,您不太可能通过 AJAX 轻松实现动态加载该表单。如果您希望表单在没有任何用户交互的情况下呈现,那么我会考虑在隐藏的 div 中呈现表单,然后使用当前通过 AJAX 拉入表单的客户端 javascript 只需将该 div 设置为显示。

    如果您必须保持当前通过 AJAX 加载的方法,那么您需要深入了解 Contact Form 7 代码(或者可能是手动代码),以查看您可能通过它们提供的钩子或 JavaScript API 获得哪些选项将允许您在检索标记后自行加载它。

    【讨论】:

    • 感谢劳伦斯的回答。我会尝试你的建议,如果我能想出一个可行的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2014-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-19
    相关资源
    最近更新 更多