رفتن به مطلب
iranwebserver میزبانی وب
one23

مشکل افزونه بانک ملت با افزونه چند زبانه کردن سایت polylang، قسمت callBackUrl

پست های پیشنهاد شده

سلام دوستان، یک مشکلی وجود داره با افزونه بانک ملت که توسط تیم ووکامرس فارسی نوشته شده. زمانی که افزونه polylang رو نصب می‌کنیم و دامنه رو به این شکل تغییر می‌دیم:

domain.com/fa

در زمان برگشت از بانک به این آدرس میره:

https://domain.com/wc-api/WC_Gateway_Bankmellat/?wc_order=1111

و به این دلیل صفحه 404 نمایش داده می‌شه.

چون اطلاعات ووکامرس در آدرس:

https://domain.com/fa/wc-api/WC_Gateway_Bankmellat/?wc_order=1111

قرار داره.

یعنی fa فرق بین دو url بالا هستش.

نه فقط پرداخت موفق بلکه تمام بازگشتی‌های بانک ملت به 404 ختم می‌شن.

این باعث شده پرداختی هم اگر انجام می‌شه به دلیل کار نکردن callBackUrl، هزینه محصول به حساب مشتری برگرده.

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

اضافه کنم که با افزونه درگاه ایران‌کیش این مشکل رو ندارم و خودش بدون هیچ تغییری fa رو اوکی می‌کنه.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 10 ساعت قبل، Mohammad گفته است :

سلام

درگاه ایران کیش رو از کجا تهیه کردید؟

چون ادرس callbackurl بر اساس ادرس پایه فروشگاه هست.

سلام محمد جان، ایران‌کیش رو از irankish.com تهیه کردیم که به بانک سامان متصل هست. اما اینجا مشکل افزونه بانک ملت هستش که موقعه‌ی برگشت از بانک اون داستان پیش میاد. اگر از polylang استفاده نکنیم مشکلی نداریم.. اما وقتی استفاده می‌کنیم زمان برگشت از بانک ملت باید به آدرس زیر بره:

https://domain.com/fa/wc-api/WC_Gateway_Bankmellat/?wc_order=1111

اما به این آدرس می‌ره:

https://domain.com/wc-api/WC_Gateway_Bankmellat/?wc_order=1111

برگه‌ی فروشگاه هم در این آدرس هست:

https://domain.com/fa/shop/

--------------------------------------------------------

در بانک ملت action به آدرس زیر هستش:

نقل قول

1.png.0409870ac5d43e48da97d0a8c54019b2.png

 

بعد از انصراف یا هر بازگشتی به این آدرس 404 ما می‌آد:

نقل قول

2.thumb.png.66d6c6235c3b23665884755af951884c.png

 

حالا به آدرس که fa اضافه کنیم کال‌بک اوکی می‌شه و ریداکت می‌شه به چک‌اوت‌مون:

نقل قول

3.thumb.png.0266a07eb9e0e10b822cefaf9687f6b9.png

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

کسی که پاسخ نداد، اما حل مشکل:

$callBackUrl = add_query_arg( 'wc_order', $order_id , WC()->api_request_url('WC_Gateway_Bankmellat') );

به هر صورتی که دوست‌دارید تغییر بدید. مثل:

$callBackUrl = 'https://domain.com/fa/wc-api/WC_Gateway_Bankmellat/?wc_order=$order_id';

موفق باشید.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 2 ساعت قبل، one23 گفته است :

کسی که پاسخ نداد، اما حل مشکل:


$callBackUrl = add_query_arg( 'wc_order', $order_id , WC()->api_request_url('WC_Gateway_Bankmellat') );

به هر صورتی که دوست‌دارید تغییر بدید. مثل:


$callBackUrl = 'https://domain.com/fa/wc-api/WC_Gateway_Bankmellat/?wc_order=$order_id';

موفق باشید.

کد بالا زمانی جواب می‌ده که شما لینک محصول رو بعد از پرداخت به کاربر ندید..فقط پرداخت موفقیت آمیز هستش.

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

function woocommerce_fix_checkout_url( $request ) {
    if (function_exists('pll_current_language'))
        if (pll_current_language() == 'fa')
        {
            $request = 'https://domain.com/fa/wc-api/WC_Gateway_Bankmellat/';
            return $request;
        }
}

add_filter( 'woocommerce_api_request_url', 'woocommerce_fix_checkout_url', 10, 1 );

فقط بعدش چک کنید درگاه‌های دیگ‌تون به مشکل نخورده باشن.

کد بالا چک می‌کنه اگر زبان وب‌سایت پارسی بود کال‌بک رو به اون صورتی که می‌خوایم تغییر بده.

موفق باشید.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری

×