【问题标题】:How to create and finish(bill) order imedeatly after "add to cart" clicked (Woocommerce)如何在“添加到购物车”点击后立即创建和完成(账单)订单(Woocommerce)
【发布时间】:2015-09-07 18:28:35
【问题描述】:

我在我的网站上使用 Woo 商务插件,但在用户订购产品时(在“添加到购物车”、“结帐”和“结算”最后一个并不真正存在之后)的过程结束时,他进入他有权下载文件的页面(这就是为什么计费阶段并不真正存在),即产品。 该网站基于会员资格,我知道这不是通过会员资格提供下载产品的正确方式,但它就是这样......

我需要防止用户通过“添加到购物车”、“结帐”和“计费”(他需要通过 3-4 页才能真正访问链接)并访问文件在他点击“添加到购物车”后下载,所以我需要一些如何创建订单(使用他选择的产品)并为其开票(所有这些都在后台),在他点击“添加到购物车”后,他已经被重定向到下载页面(订单完成后)..

我看到this 链接关于重定向到结帐页面,但这还不够...... 那么我怎样才能创建这样的东西..

我知道这是一个笼统的问题,但我想听听建议,如果您可以将我重定向到一些代码,那将是惊人的...

【问题讨论】:

  • 为什么不完全删除“添加到购物车”按钮,并将其替换为仅显示用户已登录/具有正确会员权限的链接?
  • 因为他的下载量是有限的,而且是按他的订单计算的...

标签: php wordpress woocommerce


【解决方案1】:

解决它.. 如果有人会处理同样的问题,请在此处发布.. 在functions.php中实现它

add_filter ('woocommerce_add_to_cart_redirect', 'redirect_to_checkout');

function redirect_to_checkout(){

                   global $woocommerce, $product, $post;
                        $args = array(
                            'status'        => 'processing',
                            'customer_id'   =>  get_current_user_id()
                        );
                        $order = wc_create_order( $args  );
                        $url = explode('?', 'http://'.$_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
                        $ID = url_to_postid($url[0]);
                        $order->add_product(get_product($ID));  

                $address = null; // On my site I don't really need it.
                $order->set_address( $address, 'billing' );
                $order->set_address( $address, 'shipping' );
                $order->calculate_totals();
                $order->update_status( 'completed' );

              $checkout_url = $order->get_view_order_url( );

 return $checkout_url;
exit;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-05
    • 2022-11-03
    • 1970-01-01
    • 2021-10-13
    • 2017-08-25
    • 2018-09-10
    • 2014-06-01
    • 1970-01-01
    相关资源
    最近更新 更多