اگر می خواهید شناسه محصول را در صفحه پرداخت در ووکامرس دریافت کنید ، این آموزش شما را راهنمایی می کند و به شما کمک می کند. ابتدا باید نحوه دریافت شناسه محصول به طور کلی با استفاده از توابع پیش فرض ووکامرس را درک کنید. همانطور که در چندین آموزش دیگر اشاره کرده ام ، امکان دریافت شناسه محصول بدون نوشتن کد وجود دارد ، اما در صورتی که می خواهید شناسه محصول را در صفحه پرداخت در ووکامرس دریافت کنید ، بدیهی است که می خواهید از آن در منطقی استفاده کنید.
شناسه محصول را در صفحه پرداخت در ووکامرس دریافت کنید
برای دریافت شناسه محصول در صفحه پرداخت یا صفحه سفارش ، ابتدا باید شناسه سفارش را دریافت کنید و سپس جزئیات سفارش را که شامل مواردی است که به سبد خرید اضافه شده و در سفارش هستند ، استخراج کنید.
در حالت ایده آل ، می توانید یک تابع بنویسید که شناسه های محصول را از صفحه پرداخت همانطور که در کد زیر به اشتراک گذاشته ام بر می گرداند:
function sevencloner_get_order_products(){ $order_id = absint( get_query_var( 'order-pay' ) ); //شناسه ها را از صفحه تشکر دریافت کنید if ( is_wc_endpoint_url( 'order-received' ) ) { global $wp; //دریافت شناسه سفارش $order_id = intval( str_replace( 'checkout/order-received/', '', $wp->request ) ); // نمونه ای از شی WC_Order را دریافت کنید $order = new WC_Order( $order_id ); $items = $order->get_items(); foreach ( $items as $key => $item ): //$product_id = $item['product_id']; $product = $item->get_product(); if ( $product ) { $productsInOrderIds[] = $product->get_id(); } return $productsInOrderIds; endforeach; }// از صفحه "پرداخت سفارش" - نقطه پایانی -> صفحه پرداخت سفارش فرعی دریافت می کند – /order-pay/{ORDER_ID}. elseif ( 0 get_items() as $key => $item ) { $product = $item->get_product(); if ( $product ) { $productsInOrderIds[] = $product->get_id(); } } return $productsInOrderIds; } // سفارش از سبد خرید/پرداخت دریافت می شود. elseif ( WC()->cart ) { $productsInOrderIds = array(); foreach ( WC()->cart->get_cart() as $order_item ) { if ( isset( $order_item['data'] ) && ! empty($order_item['data'] ) ) { $productsInOrderIds[] = $order_item['data']->get_id(); } } // دریافت شیء محصول /**foreach ( WC()->cart->get_cart() as $key => $item ) { if ( isset( $item['data'] ) && ! empty( $item['data'] ) ) { $productsInOrder[] = $item['data']; } }**/ return $productsInOrderIds; } }
همانطور که می بینید اگر هرکدام از این موارد عبارات شناسه محصول را به عنوان یک آرایه بازگردانند ، می توانید مشاهده کنید و در صورت نیاز به بررسی یک محصول ، محصول مورد نظر خود را بدست آورید.
نتیجه
در این پست ، من نشان می دهم که چگونه می توانید با استفاده از عملکردی که در قطعه کد بالا ایجاد کردم ، شناسه محصول را در صفحه پرداخت در ووکامرس دریافت کنید. امیدوارم اگر به دنبال راهی سریع برای به دست آوردن شناسه محصول در هنگام خرید هستید ، این مکان خوبی برای شروع باشد.