آیا تا به حال به این فکر کردی که فرآیند خرید آنلاین چقدر میتونه سادهتر و سریعتر بشه؟!
تو دنیای فروشگاه های اینترنتی، تقریبا میشه گفت همیشه نیاز داریم که تجربهای راحتتر، سریعتر و بدون پیچیدگی برای مشتریان داشته باشیم. یکی از ویژگیهای فوقالعاده که میتونه این تجربه رو متحول کنه، افزودن تعداد زیادی از محصولات به سبد خرید از طریق URL و تنظیم مقادیرش به صورت پیشفرض هست. در ادامه کدی رو در اختیارتون میزارم که با اون به راحتی میتونید این مورد رو در سایت وردپرسیتون هندل کنید.
add_action( 'template_redirect', function() {
// فقط برای درخواستهای چندگانه Add-to-Cart
if(
! class_exists( 'WC_Form_Handler' )
|| empty( $_REQUEST['add-to-cart'] )
|| ! strpos( $_REQUEST['add-to-cart'], '-' ) // تغییر از `,` به `-`
) {
return;
}
// دریافت درخواستها
$product_ids = explode('-', urldecode($_REQUEST['add-to-cart']));
$quantities = !empty($_REQUEST['quantity']) ? explode('-', urldecode($_REQUEST['quantity'])) : [];
// تنظیم مقدار پیشفرض ۱ برای مواردی که تعداد مشخص نشده است
foreach ($product_ids as $index => $product_id) {
$quantities[$index] = isset($quantities[$index]) ? absint($quantities[$index]) : 1;
}
// متوقف کردن پردازش پیشفرض ووکامرس
remove_action( 'wp_loaded', [ 'WC_Form_Handler', 'add_to_cart_action' ], 20 );
// افزودن محصولات به سبد خرید
foreach( $product_ids as $i => $product_id ) {
$product_id = absint( $product_id );
$quantity = wc_stock_amount( absint( $quantities[$i] ) );
$added_to_cart = WC()->cart->add_to_cart( $product_id, $quantity );
if( $added_to_cart ) {
wc_add_to_cart_message( [ $product_id => $quantity ], true );
}
}
} );
//لینکی که باید به مشتری بدی یا توی دکمه بزاری:
https://example.com/?add-to-cart=500-501-502&quantity=100-200-150
لازم به ذکره که این کد معمولا در سناریو های زیر میتونه کارایی داشته باشه!
- سفارشات گروهی یا عمده
- لینکهای تبلیغاتی یا تبلیغات ایمیلی
- فرایند خرید آسانتر برای مشتریان تکراری
- افزودن محصولات به سبد خرید از طریق تخفیفها یا پیشنهادات ویژه
- مدیریت خرید محصولات در بستههای خاص


