درود.
ما میخواهیم در صفحههای سفارشهای ووکامرس محصولات براساس
در فروشگاه ما تعداد محصولات بالای 1600 قلم هست و در سفارش ها تعداد محصولات هم طبیعتا بالاست.برخی از محصولات در انبار های مختلف هستند و این که در صفحه ی سفارش براساس ترتیبی که ما میخواهیم باشه خیلی مهمه و در صورتی که به این صورت نباشه مشکل برامون پیش میاد به این صورت که محصول هایی که در یک انبار هستند کنار هم نمی آیند و سرعت بستن سفارش کند میشود.
با کلی دردسر تونستم این کد رو با همکاری یکی از دوستان بنویسم: فقط تنها مشکلی که داره اینه که در محصولات متغیری که ویژگی روی همه تنظیم شده باشه اگر مشتری از یک محصول مثلا رنگ آبی و قرمز رو در سفارشش ثبت کرده باشد فقط یکی از آن ها را نشان می دهد.
به عنوان مثال در آیتم های سفارش مشتری آیتم اول: محصول A متغیر A رنگ قرمز آیتم دوم: محصول A متغیر A رنگ آبی سفارش داده بعد از اسفاده از این فانکشن فقط آیتم اول را نشان میدهد. روی بقیه محصولات به درستی کار میکند.
شرح بیشتر موضوع در
دوستانی که از کد های ووکامرس بیشتر سر در میارند ممنون میشم راهنماییم کنید و کد رو اصلاح کنید.
ما میخواهیم در صفحههای سفارشهای ووکامرس محصولات براساس
لینک ها تنها برای اعضای سایت قابل نمایش است.
یا دسته بندی مرتب کنیم.در فروشگاه ما تعداد محصولات بالای 1600 قلم هست و در سفارش ها تعداد محصولات هم طبیعتا بالاست.برخی از محصولات در انبار های مختلف هستند و این که در صفحه ی سفارش براساس ترتیبی که ما میخواهیم باشه خیلی مهمه و در صورتی که به این صورت نباشه مشکل برامون پیش میاد به این صورت که محصول هایی که در یک انبار هستند کنار هم نمی آیند و سرعت بستن سفارش کند میشود.
با کلی دردسر تونستم این کد رو با همکاری یکی از دوستان بنویسم: فقط تنها مشکلی که داره اینه که در محصولات متغیری که ویژگی روی همه تنظیم شده باشه اگر مشتری از یک محصول مثلا رنگ آبی و قرمز رو در سفارشش ثبت کرده باشد فقط یکی از آن ها را نشان می دهد.
به عنوان مثال در آیتم های سفارش مشتری آیتم اول: محصول A متغیر A رنگ قرمز آیتم دوم: محصول A متغیر A رنگ آبی سفارش داده بعد از اسفاده از این فانکشن فقط آیتم اول را نشان میدهد. روی بقیه محصولات به درستی کار میکند.
شرح بیشتر موضوع در
لینک ها تنها برای اعضای سایت قابل نمایش است.
دوستانی که از کد های ووکامرس بیشتر سر در میارند ممنون میشم راهنماییم کنید و کد رو اصلاح کنید.
کد:
add_filter( 'woocommerce_order_get_items', 'filter_order_get_items', 10, 2 );
function filter_order_get_items( $items, $order ){
// no need to reorder if less than 2 items
if(count($items) < 2) return $items;
$sorted_items = $products_items_ids = array();
// Get the array of product/variation IDs with Item IDs within the order
foreach( $items as $item_id => $item ){
// Get the product ID (Added WC 3+ compatibility)
$product_id = method_exists( $item, 'get_product_id' ) ? $item->get_product_id() : $item['product_id'];
// Get the variation ID (Added WC 3+ compatibility)
$variation_id = method_exists( $item, 'get_variation_id' ) ? $item->get_variation_id() : $item['variation_id'];
if( $variation_id > 0 )
$product_id = $variation_id;
$products_items_ids[ $product_id ] = $item_id;
}
// The WP Query based on the product Ids from this order
$query = new WP_Query( array(
'posts_per_page' => -1,
'post_type' => array( 'product', 'product_variation' ), // <== HERE MISSING
'orderby' => 'menu_order',
'order' => 'ASC',
'post__in' => array_keys( $products_items_ids ),
) );
// Loop in the Query
if( $query->have_posts() ){
while( $query->have_posts() ): $query->the_post();
// Get the post ID
$post_id = $query->post->ID;
// Get the corresponding item ID for the current product ID
$item_id = $products_items_ids[ $post_id ];
// Get the new sorted array of items
$sorted_items[$item_id] = $items[$item_id];
endwhile;
}
wp_reset_query();
return $sorted_items;
}
آخرین ویرایش توسط مدیر: