Php recaptcha使用联系人表单7正常工作时出现问题

Php recaptcha使用联系人表单7正常工作时出现问题,php,wordpress,woocommerce,recaptcha,contact-form-7,Php,Wordpress,Woocommerce,Recaptcha,Contact Form 7,我目前正在使用wordpress和contact form 7以及recaptcha在我们正在构建的客户网站的两种不同类型的页面上 (工作顺利) (recaptcha未正确加载,由于缺少值而无法提交) 我尝试了几种不同的方法,并将其归结为唯一的区别是,在第2页上,当在下拉菜单中选择实际值(参见下图中的PumpAlternative)时,通过ajax请求初始化页面后,我们正在加载联系人表单7。我认为我需要在联系人表单7加载后重新加载/设置recaptcha,但我不知道如何做到这一点 //

我目前正在使用wordpress和contact form 7以及recaptcha在我们正在构建的客户网站的两种不同类型的页面上

  • (工作顺利)
  • (recaptcha未正确加载,由于缺少值而无法提交)
  • 我尝试了几种不同的方法,并将其归结为唯一的区别是,在第2页上,当在下拉菜单中选择实际值(参见下图中的PumpAlternative)时,通过ajax请求初始化页面后,我们正在加载联系人表单7。我认为我需要在联系人表单7加载后重新加载/设置recaptcha,但我不知道如何做到这一点

        // 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;
    }
    
    //显示无价格(0kr)变体的联系表单,如果存在价格,则显示“添加到购物车”按钮。
    添加过滤器('woocommerce\u available\u variation'、'empty\u和\u zero\u variation\u prices\u html',10,3);
    函数为空,变量为零,价格为html($data,$product,$VARIANCE){
    如果('0'==$variation->get|u price()||'===$variation->get|u price()| 0==$variation->get|u price()){
    $data['price_html']='Kontakta oss angående produkten'。使用短码('contact-form-7 id=“7336”title=“Prisförfrågan”]”,'woocommerce');
    $data['is_purchase']=false;
    }否则{
    $data['price_html'].=uuu(do_快捷码('[add_to_cart_按钮]);
    }
    返回$data;
    }
    


    欢迎提供所有的想法和帮助。

    按照WordPress的工作方式,短代码不仅仅是在代码中呈现标记。具体来说,它可以调用
    wp\u enqueue\u script
    等函数,这些函数可以在页脚中呈现额外的javascript,这些javascript通常提供用于加载动态添加到页面中的表单或准备Recaptcha的代码

    简而言之,您不太可能通过AJAX轻松实现动态加载表单。如果您希望在没有任何用户交互的情况下呈现表单,那么我会考虑将表单呈现在隐藏的div中,然后使用您当前通过Ajax拉入表单的客户端JavaScript简单地设置DIV来显示。
    如果您必须保持当前通过AJAX加载的方式,那么您需要深入研究Contact Form 7代码(或者手动),看看您可以通过它们提供的挂钩或javascript API来选择哪些选项,以便在检索标记后自己加载它。

    WordPress的工作方式,短代码可以做的不仅仅是在代码中呈现标记。具体来说,它可以调用
    wp\u enqueue\u script
    等函数,这些函数可以在页脚中呈现额外的javascript,这些javascript通常提供用于加载动态添加到页面中的表单或准备Recaptcha的代码

    简而言之,您不太可能通过AJAX轻松实现动态加载表单。如果您希望在没有任何用户交互的情况下呈现表单,那么我会考虑将表单呈现在隐藏的div中,然后使用您当前通过Ajax拉入表单的客户端JavaScript简单地设置DIV来显示。
    如果您必须保持当前通过AJAX加载的方法,那么您需要深入研究Contact Form 7代码(或者手动),看看您可以通过它们提供的挂钩或javascript API选择哪些选项,以便在检索标记后自己加载。

    谢谢您的回答。我会试试你的建议,看看能不能想出一个有效的解决办法。谢谢你的回答劳伦斯。如果我能想出一个有效的解决办法,我会试试你的建议,然后再考虑。