مرتب سازی آیتم های سفارش مشتری در صفحه ی ویرایش سفارش در ادمین ووکامرس

amraja

تازه وارد
درود.

ما میخواهیم در صفحه‌‌های سفارش‌های ووکامرس محصولات براساس یا دسته بندی مرتب کنیم.
در فروشگاه ما تعداد محصولات بالای 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;
}
 
آخرین ویرایش توسط مدیر:

msayber

تازه وارد
سلام 

صفحه سفارش نمیدونم کجاست ولی اگر منظور شما سورت کردن محصولات در دستبندی ها است از ووکامرس> تنظیمات> محصولات>نمایش  یک قسمت مرتب سازی پیشفرض 

 

amraja

تازه وارد
سلام 

صفحه سفارش نمیدونم کجاست ولی اگر منظور شما سورت کردن محصولات در دستبندی ها است از ووکامرس> تنظیمات> محصولات>نمایش  یک قسمت مرتب سازی پیشفرض 
وقتی مشتری سفارش میده و سفارش مشتری رو در یک صفحه ای میبینیم. در اون صفحه کالا های سفارش داده شده ی مشتری لیست شده حالا ما میخواهیم این محصولات براساس انتخاب ما سورت شه مثلا کالای فلان 1 و فلان 2 که برای انبار 1 هست پیش هم باشن و...

 

جاویدان

کاربر عضو
با سلام دوست عزیز

لینکی که شما گذاشتی و این آموزش میگه که شما می تونید در صفحه اصلی وکامرس و دسته بندی ها نحوه نمایش محصولات رو تعیین کنید که مثلا محصولات بصورت جدیدترین محصولات اول باشن پر فروش ها اول باشن یا سایر موارد

اگر منظور شما هم همین هست خب شما باید دسته بندی محصولات رو بر اساس انبارها تعریف کنید مثلا شما انبار 1 دارید و این انبار 1 شامل دسته حبوبات ، ترشی جات و روغن ها است  انبار 2 شامل دسته سبزیجات میوه ها کنسروها

خب شما اول در دسته بندی قرار میدید انبار 1 سر دسته زیر دسته حبوبات ترشی جات روغن ها

انبار 2 سر دسته زیر دسته ها سبزیجات میوه ها کنسروها

در منو سایت دیگه سر دسته رو قرار نمیدید بلکه فقط از زیر دسته ها استفاده میکنید البته شما می توانید در هنگام ثبت سر دسته ها نام رو مثلا خشکبار قرار داده و نامک رو anbar1 تعیین کنید (چون نامک مرتبط به پیوند یکتاست پس مشکلی براتون ایجاد نمیشه که مشتریان بفهمند چی به چیه ) اینجوری اگر هم در منو سر دسته و زیر دسته ها قرار بگیرند و شما بخواید مجزا سازی کنید می تونید هر کدوم رو در بخش خودش مجزا نشون بدید

البته اگر منظورتون اینه که این موارد در صفحه دریافت سفارش که شما دریافت می کنید به صورت مجزا نشون داده بشه باید بررسی بشه آیا امکان سفارشی سازی هست یا خیر

امیدوارم منظور شما رو درست فهمیده باشم اگر اشتباه برداشت کردم با عکس منظورتون رو واضح تر بگید

ضمنا افزونه ویژوال برای جداسازی همین موارد از یکدیگر در برگه اصلی فروشگاه بسیار موفق نشون میده

موفق باشید

 
آخرین ویرایش توسط مدیر:

amraja

تازه وارد
با سلام دوست عزیز

البته اگر منظورتون اینه که این موارد در صفحه دریافت سفارش که شما دریافت می کنید به صورت مجزا نشون داده بشه باید بررسی بشه آیا امکان سفارشی سازی هست یا خیر

امیدوارم منظور شما رو درست فهمیده باشم اگر اشتباه برداشت کردم با عکس منظورتون رو واضح تر بگید

موفق باشید
سلام منظورم در صفحه ی دریافت سفارش هست. ما یکم انبارمون بزرگه میخوایم محصولاتی که در انبارمون پیش هم هستند در صفحه ی دریافت سفارش هم پیش هم باشند تا عملیات آماده سازی و بستن سفارش مشتری تسریع پیدا کند.
You must be registered for see images attach


مثلا در این سفارشی که از مشتری گرفتیم میخوایم همه ی لباس ها پیش هم باشند که در انبارمون هم لباس ها پیش هم هستند. در واقع این یک کار back-end هست نه front-end

 
آخرین ویرایش توسط مدیر:

جاویدان

کاربر عضو
با سلام دوست عزیز

چیزی که بنده فهمیدم شما تقریبا یه دراگ اند دارپ میخوای که بتونی نظم بهشون بدی بصورت دستی



این افزونه رو تست کن

البته اگر می خوای که یه فیلتر ایجاد بشه که مثلا یه نوع دسته محصول از اول خرید در کنارهم لیست باشند باید همچنان صبور باشید ببینیم چه کدی رو میش گیر آورد

موفق باشید

 

amraja

تازه وارد
با سلام دوست عزیز

چیزی که بنده فهمیدم شما تقریبا یه دراگ اند دارپ میخوای که بتونی نظم بهشون بدی بصورت دستی



این افزونه رو تست کن

البته اگر می خوای که یه فیلتر ایجاد بشه که مثلا یه نوع دسته محصول از اول خرید در کنارهم لیست باشند باید همچنان صبور باشید ببینیم چه کدی رو میش گیر آورد

موفق باشید
نه درگ اند دراپ به کارم نمیاد میخوام آیتم های سفارش مشتری به ترتیب دسته بندی محصول یا menu order کنار هم بیان.

 

amraja

تازه وارد
دوستان پست اصلی رو ویرایش کردم لطفا دوباره بخوانید

 

amraja

تازه وارد
کمکی نبود؟ کسی به کد های ووکامرس آشنایی نداره؟

 
بالا