وقت بخیر. اگر با افزونه RCP یا همون Restrict Content Pro آشنایی قبلی داشته باشید، احتمالا برای ایجاد درگاه پرداخت، سراغ افزونه درگاه زرینپال برای Restrict Content Pro رفتید.
در این صورت احتمالا متوجه ایراد اساسی این افزونه شدید. نه؟ الان میگم.
این افزونه امکان قیمتگذاری تومان رو به افزونه RCP اضافه کرده و قیمت سطوح عضویت به تومان نمایش داده میشه؛ اوکی. ولی وقتی کاربر برای خرید سطح عضویت به درگاه زرینپال هدایت میشه، درگاه پرداخت مقدار ریالی قیمت رو به طور ناصحیح نشون میده.
مشکل اینجاست که نویسنده این افزونه (آقا حنان) اون زمان (4 سال پیش) یادش میره مقدار قیمت رو قبل از ارسال به درگاه زرینپال، به ریال تبدیل کنه.
نکته عجیب اینکه در تمام این چند سال به این نکته توجه نشده.
بریم سراغ رفع این مشکل.
این افزونه شامل فایلی به نام RCP_ZarinPal.php هست. در بدنه تابع ZarinPal_Request_By_HANNANStd بخشی از کد به صورت زیر بوده:
if (!in_array($rcp_options['currency'], array( 'irt', 'IRT', 'تومان', __('تومان', 'rcp'), __('تومان', 'rcp_zarinpal'), ))) { $amount = $amount / 10; }
که به صورت زیر تغییرش دادم:
if (in_array($rcp_options['currency'], array( 'irt', 'IRT', 'تومان', __('تومان', 'rcp'), __('تومان', 'rcp_zarinpal'), ))) { $amount = intval($amount) * 10; }
امیدوارم مفید واقع بشه :)