Php recaptcha使用联系人表单7正常工作时出现问题
我目前正在使用wordpress和contact form 7以及recaptcha在我们正在构建的客户网站的两种不同类型的页面上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,但我不知道如何做到这一点 //
// 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选择哪些选项,以便在检索标记后自己加载。谢谢您的回答。我会试试你的建议,看看能不能想出一个有效的解决办法。谢谢你的回答劳伦斯。如果我能想出一个有效的解决办法,我会试试你的建议,然后再考虑。