در این پست ، نحوه دریافت شناسه سفارش فعلی از آدرس اینترنتی در ووکامرس را به شما نشان می دهم و همچنین یک قطعه کد را که می توانید برای دریافت شناسه سفارش استفاده کنید ، به اشتراک می گذارم. در پست قبلی دربه من نحوه دریافت شناسه سفارش از پایگاه داده و از صفحه تنظیمات سرپرست ووکامرس را برجسته کردم.
می توانید شناسه سفارش فعلی را در صفحه پرداخت ووکامرس یا صفحه سفارش را از محل اینترنتی دریافت کنید ، همانطور که در مثال زیر به شما نشان خواهم داد.
چرا شناسه سفارش فعلی ووکامرس را از محل اینترنتی دریافت می کنید؟
چندین سناریو وجود دارد که ممکن است بخواهید با شناسه سفارش از URL پیاده سازی کنید. رایج ترین مورد استفاده از شناسه سفارش فعلی از URL برای کنترل فرایند پرداخت و است
قبل از اینکه به نحوه دریافت شناسه سفارش فعلی از URL نگاه کنیم ، ابتدا باید نحوه عملکرد سفارشات ووکامرس را درک کنید.
ووکامرس شناسه سفارش فعلی را از محل اینترنتی دریافت کنید
اگر در صفحه پرداخت هستید و سفارش می دهید ، تعدادی پارامتر در URL قرار داده شده است و می توانید آنها را مطابق تصویر زیر مشاهده کنید:
همانطور که مشاهده می کنید ، یکی از پارامترهای اضافه شده به آدرس ووکامرس در هنگام پرداخت ، شناسه سفارش است. شناسه سفارش نیز به صفحه تشکر ووکامرس اضافه می شود ، همانطور که در تصویر زیر نشان داده شده است:
بنابراین اجازه دهید اکنون دریابیم که چگونه می توانیم این شناسه سفارش را از آدرس اینترنتی URL گرفته و از آن در منطق دیگر در توسعه ووکامرس استفاده کنیم.
نحوه دریافت شناسه سفارش فعلی ووکامرس از مجل اینترنتی
برای دریافت شناسه سفارش فعلی ووکامرس از URL ، ابتدا باید تعیین کنیم که آیا در صفحه دریافت سفارش هستیم یا خیر.
ما می توانیم این کار را با استفاده از تابع ووکامرس انجام دهیم تا نقطه پایانی را مانند کد زیر بررسی کنیم:
is_wc_endpoint_url (“order-received”)
اکنون که مشخص کردیم در صفحه دریافت سفارش قرار داریم ، اکنون مطمئن هستیم که می توانیم پارامترهایی را که قبلاً در مورد آنها صحبت کردم دریافت کرده و از آنها در کد خود استفاده کنیم. global $wp
آبجکت $wp یک نمونه global از کلاس WP می باشد.
اکنون می توانیم پارامترهای URL را برای استخراج شناسه سفارش موردنظر از URL جدا کنیم. در زیر قطعه کد کامل برای دریافت سفارش ووکامرس از URL آمده است:
if ( is_wc_endpoint_url( 'order-received' ) ) { global $wp; //گرفتن ID سفارش $order_id = intval( str_replace( 'checkout/order-received/', '', $wp->request ) ); }
شناسه سفارش را از آدرس اینترنتی و نمایش در سرصفحه دریافت کنید
من می خواهم این کد را برای یک تظاهر به یک سرصفحه سرصفحه اضافه کنم تا نشان دهم چگونه می توانید با استفاده از قطعه کد که در بالا به اشتراک گذاشته ام ، به راحتی شناسه سفارش را از URL دریافت کنید.
در زیر قطعه کد کامل با قلاب عمل به هدر برای تصویر نشان داده شده است:
// ووکامرس شناسه سفارش فعلی را از URL دریافت میکند. add_action('wp_head', 'get_current_order_id_from_url'); function get_current_order_id_from_url(){ if ( is_wc_endpoint_url( 'order-received' ) ) { global $wp; //گرفتن ID سفارش $current_order_id = intval( str_replace( 'checkout/order-received/', '', $wp->request ) ); echo $current_order_id; } }
بعد از اینکه این قطعه کد را به موضوع آزمایشی خود اضافه کردید ، مانند من ، هنگام مشاهده پرداخت زیر باید شناسه سفارش را مشاهده کنید.
نتیجه
در این پست ، من نشان داده ام که چگونه می توانید شناسه سفارش ووکامرس را از URL دریافت کنید. اساساً باید دو مرحله را درک کنید.
ابتدا ، باید بدانید که آیا در صفحه دریافت سفارشاتی هستید که پس از تسویه حساب پس از تغییر مسیر ووکامرس نشان داده می شود یا خیر. مرحله دوم این است که شناسه را از آدرس اینترنتی با کمک آبجکت عمومی WP وردپرس استخراج کنید.