【问题标题】:woocommerce - checkout fails/doesn't workwoocommerce - 结帐失败/不起作用
【发布时间】:2015-02-24 10:58:16
【问题描述】:

我的 woocommerce 结帐功能正在显示,直到今天早上都运行良好。但是现在,当我尝试提交表单时,我收到以下消息:“我们无法处理您的订单,请重试”。我没有更改设置或插件中的任何内容。我最近将 woocommerce 更新到 2.3.5。但是,在那之后一切正常。我真的不明白这里发生了什么。我希望有人可以帮助我。

谢谢!

PS:即使我将帐单字段保持打开状态,我也会收到此错误消息...

_____ 编辑 ______

我找到了引发错误的函数:

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 行。

【问题讨论】:

    标签: php wordpress woocommerce wordpress-theming


    【解决方案1】:

    我得到了解决方案。随着 WooCommerce 2.3.5 更新,添加了两个新文件:payment.php 和 payment-method.php。在 payment.php 中有这一行:

    <?php wp_nonce_field( 'woocommerce-process_checkout' ); ?>
    

    不知何故,这条线在我的子主题中被删除了。

    【讨论】:

    • 嘿!我遇到了同样的问题,但我的子主题中没有 payment.php。你能解释一下你是如何解决这个问题的吗?
    【解决方案2】:

    有人提到他们在将 GoogleRECAPTCHA 插件与 Woocommerce 一起使用时遇到了这个问题。他们禁用了它,问题就消失了。 :)

    【讨论】:

      【解决方案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 会不断地让您退出管理员并在发生安全/不安全切换时强制您重新进行身份验证。

        【讨论】:

        • 其实我有这个问题....我经常注销并且结帐不起作用。我刚刚添加了一个由我的主机服务安装的 SSL。无论如何,即使我不检查“强制 SSL”标志,我也有同样的问题
        猜你喜欢
        • 1970-01-01
        • 2023-04-04
        • 1970-01-01
        • 2016-10-08
        • 2019-12-21
        • 1970-01-01
        • 1970-01-01
        • 2015-09-04
        • 2018-03-27
        相关资源
        最近更新 更多