附加的“添加到购物车”按钮重定向到 WooCommerce Loop 上的结帐
Additional Add To Cart button redirecting to checkout on WooCommerce Loop
我需要 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 & Checkout', 'woocommerce');
if ($product->is_type('simple')){
echo '<a href="'.$atc_url.'" class="'.$button_class.'">'.$button_text.'</a>';
}
}
以下方法可以解决问题,在 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 & 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 文件。已测试并有效。
我需要 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 & Checkout', 'woocommerce');
if ($product->is_type('simple')){
echo '<a href="'.$atc_url.'" class="'.$button_class.'">'.$button_text.'</a>';
}
}
以下方法可以解决问题,在 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 & 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 文件。已测试并有效。