付款前的Woocommerce Review订单

时间:2014-08-14 20:24:01

标签: php wordpress e-commerce woocommerce

我正在尝试在我的Woocommerce网上商店添加评论订单页面。目前,当我向购物车添加商品时,我可以前往结帐页面,其中需要提交和提交帐单和送货地址,然后,下一步是付款页面(使用PayPal)。 我想在进入付款页面之前添加订单审核页面,因此在结帐页面上输入地址并且用户单击继续后,应显示订单摘要/审核页面,其中包含订单总计和先前输入的地址,以及如果十个用户想要更改地址则返回的链接。像确认页面。然后,一旦用户继续,它就会转到付款页面。

我没有运气就研究过这个。我在functions.php中尝试了此操作,但它不起作用:

add_action( 'woocommerce_review_order_before_submit','woocommerce_order_details_table');

有没有办法用woocommerce做到这一点?管理面板中也没有此设置。

3 个答案:

答案 0 :(得分:1)

我最近遇到过这个问题。我的解决方案是创建一个名为' Review Order'在Wordpress的后端,在内容编辑器中输入短代码[woocommerce_checkout]。然后我在我的子主题的根目录中创建了一个page-review-order.php。

在我的page-review-order.php中,我设置了以下定义:

if ( ! defined( 'THIS_IS_CHECKOUT' ) )
{
  define( 'THIS_IS_CHECKOUT', true );
}
if ( ! defined( 'THIS_IS_REVIEW') )
{
  define( 'THIS_IS_REVIEW', true);
}

从这里我能够完成典型的结账流程并获得我所需要的信息而不会有太多麻烦,但我可以换出流程的哪些部分属于结帐页面以及哪些部分可能属于审核页面以下内容:

if (defined( 'THIS_IS_REVIEW'))
{
  $reviewPage = true;
}

答案 1 :(得分:0)

查看我管理的WooCommerce设置,我可以看到您可以设置一个购物车'管理员中的页面通过WooCommerce>设置>结帐(顶部的标签)。

向下滚动到“结帐页面”'并确保你有一个购物车页面'选择。如果您没有创建一个名为“购物车”的页面,请执行此操作。并向其添加以下短代码:[woocommerce_cart]

完成上述操作后,请返回上一个WooCommerce设置页面,然后选择您创建的新页面。

此页面位于结帐流程中的结算明细之前。

如果有帮助,请告诉我。

答案 2 :(得分:0)

虽然这可能不是完美的解决方案,但这是我整理出来的方法。

请查看this stackoverflow thread

我们插入一个隐藏的输入confirm-order-flag,告诉我们它是要审核还是已经审核。

然后,在验证之后,我们使用woocommerce_after_checkout_validation来检查该值。如果要进行审查,我们会添加一个假错误。

在jQuery中,我们检查错误数量,如果要检查,则为1;如果有错误,则为2(或更多)(如果为0,则您已经在查看页面上)。

    $(document.body).on('checkout_error', function () {
    var error_count = $('.woocommerce-error li').length;
    var url_params = form_parameters_to_url();
    if (error_count == 1) { // Validation Passed (Just the Fake Error I Created Exists)
                window.location = "review_page_url";

            }else{ // Validation Failed (Real Errors Exists, Remove the Fake One)
                $('.woocommerce-error li').each(function(){
                    var error_text = $(this).text();
                    if (error_text == 'custom_notice'){
                        $(this).css('display', 'none');
                    }
                });
            }
        });

在评论页面的url上,我也插入了[woocommerce_checkout]短代码,但这一次是在ID为#confirm_order_page的容器中。 我再次使用jQuery,将隐藏输入的值设置为0:

$('#confirmation_form #place_order').click(function () {
    $('#confirm-order-flag').val('');       
});

然后它没有错误,并且通过了验证。我从CSS隐藏评论页面上的表单。 这可能不是一个完美的解决方案,但可以帮助您开始解决此问题。