首页 > 解决方案 > recaptcha 与联系表 7 正常工作的问题

问题描述

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

  1. 联系表格:https://www.alvestadtanken.se/kontakt/(工作没有问题)
  2. 没有价格的可变产品:https ://www.alvestadtanken.se/butik/dieseltankar/stationara-dieseltankar-1300-9000-liter/dieseltank-fm-5000-l/(recaptcha dosnt 正确加载,由于缺少值而不会提交)

我已经尝试了几种不同的方法,并将其归结为唯一的区别是,在第2页上,我们正在加载联系人表7初始化后的槽槽ajax请求(请参阅下图中的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;
}

https://www.alvestadtanken.se/butik/dieseltankar/stationara-dieseltankar-1300-9000-liter/dieseltank-fm-5000-l/,recaptcha dosnt 正确加载并且由于缺少值而不会提交)

欢迎所有想法和帮助。

标签: phpwordpresswoocommercerecaptchacontact-form-7

解决方案


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

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

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


推荐阅读