【问题标题】:WooCommerce Button to Clear Cart, Add One Item and go to CheckoutWooCommerce 按钮清除购物车,添加一项并转到结帐
【发布时间】:2018-02-09 12:13:08
【问题描述】:

我需要一个独特的登录页面上的按钮来执行此操作:

  1. 清空购物车
  2. 将特定商品添加到购物车
  3. 直接结账
  4. (在结帐时禁用或隐藏菜单栏)

我有一个调用链接的按钮:https://www.snoooze.co/?add-to-cart= 12374

然后这个 sn-p 在我的“functions.php”中

add_filter ('woocommerce_add_to_cart_redirect', 'woo_redirect_to_checkout');
function woo_redirect_to_checkout() {
    global $woocommerce;
    $woocommerce->cart->empty_cart();
    $checkout_url = WC()->cart->get_checkout_url();
    return $checkout_url; }

问题是,如果我在我的函数中使用add_to_Cart() 添加该项目,每次我想在商店中手动添加它时都会执行此操作,而不仅仅是我点击登录页面上的按钮。

我看到我必须以某种方式将功能分配给按钮,所以不会在其他网站上被调用,但是如何?

请帮忙。

【问题讨论】:

    标签: php wordpress woocommerce cart checkout


    【解决方案1】:

    首先,您需要在表单中嵌入一个自定义按钮。所以这里有一个简单的短代码,你可以在内容编辑器或 php 中使用:

    // Shortcode: Special button "add-to-cart" with form
    function special_button() {
        return '<form method="post" action="">
            <button type="submit" class="button" name="add_to_cart_special">Special add to cart</button>
        </form>';
    }
    add_shortcode( 'special_button', 'special_button' );
    
    // Usage: [special_button] 
    // or for php: echo do_shortcode("[special_button]");
    

    当您按下该自定义按钮时,将触发此自定义挂钩功能。它会:

    • 空车,
    • 将产品 12374 添加到购物车
    • 重定向到结帐
    • 在结帐页面显示自定义通知(可选)

    代码:

    // Special add to cart (empty cart before and redirect to checkout)
    add_action( 'template_redirect', 'special_add_to_cart' );
    function special_add_to_cart() {
        if ( isset($_POST['add_to_cart_special']) ){
            WC()->cart->empty_cart();
            WC()->cart->add_to_cart( 12374 );
            wc_add_notice( __('this product X has been added to cart'), 'notice' );
            wp_redirect( wc_get_checkout_url() );
            exit();
        }
    }
    

    所有代码都在您的活动子主题(或活动主题)的 function.php 文件中。

    经过测试并且有效。

    但是要在结帐时禁用或隐藏“菜单栏”,我真的不知道......这应该是另一个更详细的新问题......

    【讨论】:

    • 很抱歉我的回复迟了!效果很好 - 非常感谢。 :)
    猜你喜欢
    • 1970-01-01
    • 2013-03-13
    • 1970-01-01
    • 2020-12-05
    • 2018-10-10
    • 2018-10-30
    • 2014-08-30
    • 2012-08-16
    • 1970-01-01
    相关资源
    最近更新 更多