我的woocommerce结帐正在显示, 直到今天早上工作正常。但是现在当我尝试提交表单时, 我收到以下消息:”
我们无法处理你的订单, 请重试”
。我没有更改设置或插件中的任何内容。我最近将woocommerce更新到2.3.5。但是, 在那之后, 一切都运转良好。我真的不明白这是怎么回事。我希望有人能帮助我。
谢谢!
PS:即使打开计费字段, 我也会收到所有错误消息…
_____编辑______
【woocommerce-结帐失败/不起作用】我发现了引发错误的函数:
if ( empty( $_POST['_wpnonce'] ) || ! wp_verify_nonce( $_POST['_wpnonce'], 'woocommerce-process_checkout' ) ) {
WC()->
session->
set( 'refresh_totals', true );
throw new Exception( __( 'We were unable to process your order, please try again.', 'woocommerce' ) );
}
该文件位于woocommerce / includes / class-wc-checkout.php中的第351行。
#1我找到了解决方案。随着WooCommerce 2.3.5更新, 添加了两个新文件:payment.php和payment-method.php。在payment.php中, 有以下行:
<
?php wp_nonce_field( 'woocommerce-process_checkout' );
?>
不知何故, 此行在我的孩子主题中被删除了。
#2有人提到他们在Woocommerce中使用GoogleRECAPTCHA插件时遇到了这个问题。他们禁用了它, 问题就消失了。 ??
#3@SPS, 如果你真的在woocommerce 2.3.5上, 则应该有文件payment.php wp-content / plugins / woocommerce / templates / checkout /
同时, 这并不是我自己的真正罪魁祸首。 (因为已经有
<
?php wp_nonce_field( 'woocommerce-process_checkout' );
?>
那里)实际上是我的付款插件的process_payment(){}函数在内部返回:
array
(
'result'=>
'success', 'redirect'=>
add_query_arg('order', $order->
id, add_query_arg('key', $order->
order_key, get_permalink(get_option('woocommerce_pay_page_id'))))
);
代替
array
(
'result'=>
'success', 'redirect'=>
add_query_arg('order', $order->
id, add_query_arg('key', $order->
order_key, get_permalink(woocommerce_get_page_id('pay' ))))
);
检查你的代码也进行更改, 该问题将消失。 ??
#4作为备用解决方案, 如果你在登台中使用自签名SSL证书(或SSL过期)并且选择在结帐视图中强制使用https, 则它将导致PayPal失败, 并显示此相当无益的消息。
你会知道你遇到了这个问题, 因为WordPress会不断将你从管理员中注销, 并在发生安全/不安全交接时强制你重新进行身份验证。
推荐阅读
- woocommerce-结帐页面上的优惠券
- LDA——线性判别分析基本推导与实验
- 进入社会两三年后,能力开始变得跟学历一样重要
- 大厂必问的JVM面试题
- 性格内向导致的一次失败就业
- 微服务架构 | 2.1 使用 Spring Cloud Config 管理服务配置项#yyds干货盘点#
- #yyds干货盘点#laravel 上传文件到七牛云qiniu-laravel-storage
- 学一门手艺,享受幸福生活
- 关于if与else的错误使用