شرکت اتوماتیک که سازنده ووکامرس ( افزونه اختصاصی تجارت الکترونیک وردپرس ) هست سه ماه پیش اعلام کرد که Legacy REST API از نسخه 9.0 از WooCommerce حذف خواهد شد.
با این حال، برای کسانی که نتوانستهاند به API مدرنتر REST بر اساس API JSON وردپرس منتقل شوند، افزونهای ایجاد کردهایم که به شما امکان میدهد حتی پس از منسوخ شدن از WooCommerce Legacy REST API استفاده کنید. در ماه دسامبر، افزونه را به صورت نسخه در یک مخزن اختصاصی GitHub در دسترس قرار داد، و از این پس این برنامه افزودنی در فهرست رسمی افزونههای WordPress.org در دسترس است .
REST API قدیمی ووکامرس، که اکنون در بیشتر سایتهای وردپرسی فعال است، در ووکامرس ۹.۰ حذف خواهد شد. یک افزودنی ووکامرس جداگانه برای فعال نگه داشتن آن در دسترس خواهد بود.
چه کسی نیاز به نصب این افزونه دارد؟
همانطور که در پست های قبلی اشاره کردیم، توصیه میکنیم در صورتی که سایت شما به WooCommerce Legacy REST API وابستگی دارد ، فوراً برنامه افزودنی را نصب و فعال کنید تا وقتی به WooCommerce 9.0 بهروزرسانی میشوید همه چیز به کار خود ادامه دهد.
برای کسب اطلاعات بیشتر در مورد اینکه آیا سایت شما وابستگی به WooCommerce Legacy REST API دارد،در ادامه با ما باشید .
من به WooCommerce Legacy REST API وابستگی دارم. بعدش چکار کنم؟
میتوانید برنامه افزودنی را مستقیماً از داخل بخش مدیریت سایت وردپرس خود نصب کنید:
در منوی اصلی روی Plugins کلیک کنید .
روی دکمه افزودن جدید کلیک کنید .
WooCommerce Legacy REST API را در کادر جستجو وارد کنید .
پسوند باید اولین مورد در نتایج جستجو باشد. روی دکمه Install Now در کادر اطلاعات برنامه افزودنی کلیک کنید .
پس از اتمام نصب، روی دکمه Activate کلیک کنید و همه چیز آماده است.
همچنین، میتوانید .zipفایل افزونه را به صورت دستی از صفحه افزونه دانلود کنید ( دکمه دانلود را کلیک کنید ) و آن را در سایت خود آپلود کنید. دستورالعملهای نصب دستی دقیق در صفحه انتشار در GitHub موجود است .
جزئیات اصلی ووکامرس
WooCommerce 2.6 که در سال 2016 منتشر شد، شامل یک API REST جدید بر اساس API JSON وردپرس بود . این باعث شد که REST API قدیمی (که اکنون به عنوان Legacy شناخته می شود) منسوخ شود، و ما از آن زمان به عنوان منسوخ بودن آن را مستند کرده ایم . در واقع، برای اینکه قابل استفاده باشد، باید به صراحت از قسمت مدیریت فعال شود.
شرکت اتوماتیک که سازنده ووکامرس ( افزونه اختصاصی تجارت الکترونیک وردپرس ) تصمیم گرفت که Legacy REST API از نسخه WooCommerce 9.0 که قرار است در ژوئن 2024 منتشر شود از WooCommerce حذف شود.
با این حال ، این مجموعه یک افزونه WooCommerce جداگانه ارائه میکند که شامل تمام کدهای حذف شده برای سایتهایی است که هنوز به آن (نسخه قدیمی ) نیاز دارند.
برای تمام اهداف عملی برنامه نویسان و اشخاصی که نیاز به استفاده از نسخه قدیمی دارند ، نصب و فعال سازی افزونه جدید در WooCommerce 9.0 و نسخه های جدیدتر، از نظر عملکردی معادل فعال کردن Legacy REST API در WooCommerce 8.9 و نسخه های قدیمی تر است: هیچ چیز برای مشتریان API و کلیدهای مشتری یکسان تغییر نخواهد کرد.
پس میتوانید بدون نگرانی به کار خود ادامه خواهد داد.
نکته قابل توجه مهم در این تغیرات بهعلاوه، وبکهوکهایی که برای استفاده از Legacy REST API برای نوشتن نیازهای خود پیکربندی شدهاند (که در این پست به آنها «وبقلابهای قدیمی» گفته میشود) با شروع با WooCommerce 9.0 کار خود را متوقف میکنند مگر اینکه برنامه افزودنی جدید نصب شود.
چرا مجموعه ووکامرس این تغییر را اعمال میکند؟
شرکت اتوماتیک که سازنده ووکامرس به طور مداوم در حال کار بر روی بهبود تجربه WooCommerce برای کاربران و توسعه دهندگان میباشد.
به عنوان بخشی از آن، گاهی اوقات نیاز به پاکسازی داریم. حذف Legacy REST API – که در چند سال گذشته استفاده از آن را منع کرده بود – بسته انتشار WooCommerce را سبکتر میکند و امیدواریم به درک آسانتر WooCommerce REST API کمک کند.
چگونه می توانم بفهمم که آیا این روی وب سایت و کد نویسی ما تأثیر می گذارد؟
اگر حداقل یکی از موارد زیر درست باشد (یا پیشبینی میکنید که تا زمان انتشار WooCommerce 9.0 درست باشد) برای سایت شما، این تغییر روی شما تأثیر میگذارد:
- شما API Legacy REST را در نصب WooCommerce خود فعال کرده اید .
برای بررسی فعال بودن Legacy REST API، به WooCommerce > Settings > Advanced > Legacy API بروید . کادر «Enable the legacy REST API» در زیر علامت زده شده است به این معنی که Legacy REST API فعال است.
در این بخش میتوانید آموزش غیرفعالسازی REST API در وردپرس را نیز مشاهده کنید
البته اگر میخواهید تمامی reset api ها را توسط کد اختصاصی در قالب غیر فعال کنید میتوانید از این روش ه استفاده کنید .
جهت غیر فعال کردن رست در وردپرس کافی است کد زیر را به فایل functions.php قالب خود و یا افزونه site specific که قبلا ایجاد کرده اید اضافه کنید. حتما قبل از ویرایش functions.php ایجاد بکاپ فراموش نشود :
add_filter(‘json_enabled’, ‘__return_false’);
add_filter(‘json_jsonp_enabled’, ‘__return_false’);
2.شما در نصب WooCommerce خود، وبک هوک های قدیمی دارید .
برای بررسی اینکه آیا وب هوک های قدیمی در فروشگاه خود دارید، به WooCommerce > Settings > Advanced > Webhooks بروید .
بخش ووکامرس و پیکربندی ووکامرس > منوی پیشرفته > منوی وب هوک ها.
با شروع با WooCommerce 8.3، بخش “Legacy” را مشاهده می کنید که تعداد زیادی از چنین وبکهک هایی در سایت شما وجود دارد.
طبق تصویر زیر میتوانید بررسی نمایید
اگر نسخه ووکامرس WooCommerce 8.2 یا نسخه قدیمی تر دارید، باید هر وب هوک را جداگانه بررسی کنید.
روی نام وب هوک کلیک کنید تا صفحه جزئیات آن باز شود، یک وب هوک قدیمی دارای “API Legacy v3 (منسوخ شده)” به عنوان مقدار تنظیم نسخه API خواهد بود .
اگر هر یک از این موارد در مورد شما صدق می کند، سایت وردپرسی شما باید افزونه جدید را نصب کند تا برنامه هایی که با سایت شما از طریق Legacy REST API ارتباط برقرار می کنند تحت تأثیر قرار نگیرند و وب هوک های قدیمی به کار خود ادامه دهند.
در حالت ایده آل، این باید قبل از ارتقاء سرور شما به WooCommerce 9.0 اتفاق بیفتد تا از هرگونه اختلالی جلوگیری شود.
WooCommerce 8.3 همچنین در سایت هایی که دارای API Legacy REST فعال هستند یا دارای webhook های قدیمی هستند ، اخطارهای غیرقابل انکار اضافه می کند .
چه اقدامی باید انجام دهم؟
اگر پیشبینی میکنید که هنگام انتشار WooCommerce 9.0 همچنان باید API Legacy REST را فعال کنید، اقدام توصیهشده این است که به محض دردسترس شدن افزونه جدید، آن را نصب کنید. در دسترس بودن افزونه جدید را در این وبلاگ اعلام خواهیم کرد.
آیا می توانم برنامه افزودنی آینده را قبل از انتشار WC 9.0 نصب کنم؟
نصب افزونه جدید در هر زمانی قبل از انتشار WooCommerce 9.0 ایمن خواهد بودو برای شما مشکلی ایجاد نمیکند.
این به دلیل این واقعیت است که تا زمانی که برنامه افزودنی تشخیص دهد که نسخه WooCommerce در حال اجرا در سرور شما همچنان دارای API Legacy REST است، خود را مقداردهی اولیه نمی کند تا با کد داخلی تداخل نداشته باشد.
آیا می توانم برای همیشه از API Legacy برای پشتیبانی از برنامه افزودنی جدید استفاده کنم ؟
لطفاً توجه داشته باشید که برنامه افزودنی جدید بهطور نامحدود نگهداری نمیشود، بنابراین ما قویاً شما را تشویق میکنیم که سیستمهایی را که به API قدیمی یا وبقلابهای قدیمی متکی هستند بهروزرسانی کنید و به جای آن به REST API فعلی مهاجرت کنید. اگر از محصول یا خدمات شخص ثالث استفاده می کنید، در این مورد با تیم آنها تماس بگیرید.
به ما بگویید چه فکر می کنید و در وب سایت شما چه ایراداتی بوجود آمده؟
ما در حال بررسی نصب خودکار افزونه جدید به عنوان بخشی از ارتقاء به WooCommerce 9.0 در سایتهایی هستیم که دارای API Legacy REST فعال هستند یا دارای webhookهای قدیمی هستند، اما این چیزی است که باید بیشتر بررسی کنیم. در مورد این پست نظر دهید و اگر فکر می کنید این چیزی است که برای شما مفید است به ما اطلاع دهید.