ปุ่มเพิ่มในรถเข็นเพิ่มเติมที่เปลี่ยนเส้นทางไปยังการชำระเงินบน WooCommerce Loop
ฉันต้องการปุ่มบนไฟล์เก็บถาวร WooCommerce ที่เพิ่มสินค้าลงในรถเข็นและนำลูกค้าไปที่การชำระเงินอีกครั้ง ฉันเรียกมันว่า "ซื้อและชำระเงิน"
ฉันกำลังเชื่อมต่อกับที่เก็บถาวรโดยใช้การwoocommerce_after_shop_loop_item
กระทำและฉันได้กำหนดglobal $product;
อาร์กิวเมนต์แล้ว
จากนั้นฉันจะได้รับรหัสผลิตภัณฑ์จากนั้นกำหนด 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 ของธีมลูกที่ใช้งานอยู่ (หรือธีมที่ใช้งานอยู่) ผ่านการทดสอบและใช้งานได้จริง