为了账号安全,请及时绑定邮箱和手机立即绑定

额外的“添加到购物车”按钮重定向到 WooCommerce Loop 上的结账

额外的“添加到购物车”按钮重定向到 WooCommerce Loop 上的结账

PHP
交互式爱情 2023-10-15 16:57:12
我需要 WooCommerce 存档上的一个按钮,将产品添加到购物车并将客户重定向到结账。我称之为“购买和结帐”。我通过使用woocommerce_after_shop_loop_item操作连接到存档,并且我已经定义了global $product;参数。然后,我获取产品 ID,然后定义添加到购物车 url(atc_url参数)。问题是,当单击“添加到购物车”时,未添加产品。到目前为止,这是我的代码,我不太确定这里出了什么问题。add_action( 'woocommerce_after_shop_loop_item', 'buy_checkout_on_archive', 20 );function buy_checkout_on_archive(){    global $product;    $pid = $product->get_id();    $atc_url = wc_get_checkout_url().'?add-to-cart='.$pid;    $button_class = 'loop-checkout-btn';    $button_text = __('Buy &amp; Checkout', 'woocommerce');        if ($product->is_type('simple')){            echo '<a href="'.$atc_url.'" class="'.$button_class.'">'.$button_text.'</a>';    }}
查看完整描述

1 回答

?
慕仙森

TA贡献1827条经验 获得超7个赞

以下方法可以解决这个问题,在 WooCommerce 档案上添加一个自定义“添加到购物车”按钮,该按钮在将产品添加到购物车后重定向到结账:


add_action( 'woocommerce_after_shop_loop_item', 'buy_checkout_on_archive', 20 );

function buy_checkout_on_archive(){

    global $product;


    if ( $product->is_type('simple') ){

        $product_id   = $product->get_id();

        $button_url   = '?addtocart='.$product_id;

        $button_class = 'button loop-checkout-btn';

        $button_text  = __('Buy &amp; Checkout', 'woocommerce');


        echo '<a href="'.$button_url.'" class="'.$button_class.'">'.$button_text.'</a>';

    }

}


add_action( 'template_redirect', 'addtocart_on_archives_redirect_checkout' );

function addtocart_on_archives_redirect_checkout(){

    if( isset( $_GET['addtocart'] ) && $_GET['addtocart'] > 0 ) {

        WC()->cart->add_to_cart( intval($_GET['addtocart']) );


        // Checkout redirection

        wp_safe_redirect( wc_get_checkout_url() );

        exit;

    }

}

代码位于活动子主题(或活动主题)的functions.php 文件中。经过测试并有效。


查看完整回答
反对 回复 2023-10-15
  • 1 回答
  • 0 关注
  • 63 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信