الأخبار التكنولوجية والاستعراضات والنصائح!

كيفية “إضافة إلى قائمة الرغبات” دون إعادة التوجيه إلى صفحة قائمة الرغبات في Magento 2

ستساعدك المقالة التالية: كيفية “إضافة إلى قائمة الرغبات” دون إعادة التوجيه إلى صفحة قائمة الرغبات في Magento 2

<؟ php

مساحة الاسم Meetanshi \ Extension \ Controller \ Index ؛

استخدم Magento \ Catalog \ Api \ ProductRepositoryInterface ؛

استخدام Magento \ Framework \ App \ Action ؛

استخدم Magento \ Framework \ Data \ Form \ FormKey \ Validator ؛

استخدم Magento \ Framework \ Exception \ NotFoundException ؛

استخدم Magento \ Framework \ Exception \ NoSuchEntityException ؛

استخدام Magento \ Framework \ Controller \ ResultFactory ؛

الفئة Add extends \ Magento \ Wishlist \ Controller \ Index \ Add

{

تنفيذ الوظيفة العامة ()

{

$ resultRedirect = $ this-> resultFactory-> إنشاء (ResultFactory :: TYPE_REDIRECT) ؛

إذا (! $ this-> formKeyValidator-> تحقق ($ this-> getRequest ())) {

return $ resultRedirect-> setPath (‘* /’) ؛

}

$ wishlist = $ this-> wishlistProvider-> getWishlist () ؛

إذا (! $ wishlist) {

طرح NotFoundException الجديد (__ (‘الصفحة غير موجودة.’)) ؛

}

الجلسة بالدولار = $ this -> _ customerSession؛

$ requestParams = $ this-> getRequest () -> getParams ()؛

إذا ($ session-> getBeforeWishlistRequest ()) {

$ requestParams = $ session-> getBeforeWishlistRequest ()؛

$ session-> unsBeforeWishlistRequest () ؛

}

$ productId = isset ($ requestParams[‘product’])؟ (int) $ requestParams[‘product’] : باطل؛

إذا (! $ productId) {

resultRedirect $-> setPath (‘* /’)؛

إرجاع resultRedirect $؛

}

يحاول {

$ product = $ this-> productRepository-> getById ($ productId) ؛

} catch (NoSuchEntityException $ e) {

المنتج $ = لاغ ؛

}

إذا (! $ product ||! $ product-> isVisibleInCatalog ()) {

$ this-> messageManager-> addErrorMessage (__ (“لا يمكننا تحديد منتج”)) ؛

resultRedirect $-> setPath (‘* /’)؛

إرجاع resultRedirect $؛

}

يحاول {

$ buyRequest = new \ Magento \ Framework \ DataObject ($ requestParams) ؛

نتيجة $ = قائمة الرغبات $-> addNewItem ($ product، $ buyRequest)؛

إذا (is_string ($ result)) {

رمي new \ Magento \ Framework \ Exception \ LocalizedException (__ ($ result)) ؛

}

إذا (Wishlist-> isObjectNew ()) {

قائمة الرغبات $-> حفظ () ؛

}

$ this -> _ eventManager-> إرسال (

“Wishlist_add_product” ،

[‘wishlist’ => $wishlist, ‘product’ => $product, ‘item’ => $result]

) ؛

المرجع $ = $ session-> getBeforeWishlistUrl () ؛

إذا ($ إحالة) {

جلسة $-> setBeforeWishlistUrl (خالية) ؛

} آخر {

المرجع $ = $ this -> _ redirect-> getRefererUrl () ؛

}

$ this -> _ objectManager-> get (\ Magento \ Wishlist \ Helper \ Data :: class) -> calculate () ؛

$ this-> messageManager-> addComplexSuccessMessage (

“addProductSuccessMessage” ،

[

                    ‘product_name’ => $product->getName(),

                    ‘referer’ => $referer

                ]

) ؛

} catch (\ Magento \ Framework \ Exception \ LocalizedException $ e) {

$ this-> messageManager-> addErrorMessage (

__ (“لا يمكننا إضافة العنصر إلى قائمة الرغبات الآن:٪ 1.”، $ e-> getMessage ())

) ؛

} catch (\ استثناء $ e) {

$ this-> messageManager-> addExceptionMessage (

$ ه ،

__ (“لا يمكننا إضافة العنصر إلى قائمة الرغبات الآن.”)

) ؛

}

$ resultRedirect-> setUrl ($ this -> _ redirect-> getRefererUrl ()) ؛

إرجاع resultRedirect $؛

}

}