<?php

add_filter('digits_sms_gateways', 'digits_custom_panelchi_gateway_list');
function digits_custom_panelchi_gateway_list($gateways) {
    return array( 'panelchi' => array( 'value' => 1000, 'label' => 'panelchi.com - پنلچی', 'inputs' => array( __('Api key') => array( 'text' => true, 'name' => 'apikey', 'desc' => 'جهت دریافت کلید، در پنل پیامک به منوی وبسرویس>کلیدهایAPI مراجعه و کلید جدید ایجاد کنید. کلید ایجاد شده را کپی و در این کادر وارد کنید.
' ), __('Sender') => array( 'text' => true, 'name' => 'sender', 'desc' => 'شماره خط ارسال کننده پیامک را وارد کنید. اگر خط اختصاصی‌خدماتی ندارید، شماره 10001 را در این کادر وارد کنید. این خط خدماتی بوده و در پنل همه کاربران وجود دارد.' ), __('Send by pattern') => array( 'options' => array( __('No') => 0, __('Yes') => 1 ), 'name' => 'pattern', 'optional' => 1, 'desc' => 'جهت ارسال پیامک سریع با پترن این گزینه را فعال نمایید.<script>
jQuery(document).ready(function($) {

    function togglePatternFields(animate) {

        var patternSelect = $("#panelchi_pattern");

        var patterncodeRow = $("#panelchi_patterncode").closest("tr");

        var patternvarsRow = $("#panelchi_patternvars").closest("tr");

        
        if (patternSelect.length && patterncodeRow.length && patternvarsRow.length) {

            var patternValue = patternSelect.val();

            if (patternValue == "1") {

                if (animate) {

                    patterncodeRow.slideDown(500);

                    patternvarsRow.slideDown(500);

                }
 else {

                    patterncodeRow.show();

                    patternvarsRow.show();

                }

            }
 else {

                if (animate) {

                    patterncodeRow.slideUp(500);

                    patternvarsRow.slideUp(500);

                }
 else {

                    patterncodeRow.hide();

                    patternvarsRow.hide();

                }

            }

        }

    }

    
    // اجرا در لود صفحه (بدون انیمیشن)
    setTimeout(function() {

        togglePatternFields(false);

    }
, 100);

    
    // اجرا در تغییر مقدار (با انیمیشن)
    $(document).on("change", "#panelchi_pattern", function() {

        togglePatternFields(true);

    }
);

}
);

</script>' ), __('Pattern Code') => array( 'text' => true, 'name' => 'patterncode', 'optional' => 1, 'desc' => 'جهت ارسال پیامک های پترنی، کد پترن را وارد کنید. در صورتی که قبلا در سامانه پیامک پترن ایجاد نکردید، به سامانه پیامک بخش پیامک های متغیر دار وارد شوید و پترن با متنی مشابه زیر بسازید:<br> کد تأیید شما: %code%<br>فروشگاه من' ), __('Pattern Variable') => array( 'text' => true, 'name' => 'patternvars', 'optional' => 1, 'desc' => 'فقط کلمه متغیری که در متن پترن ثبت کرده اید وارد نمایید. مثلا code' ), ) ) );
}
add_filter( 'unitedover_send_sms', 'digits_panelchi_send', 10, 8);
function digits_panelchi_send($value, $option_slug, $gateway_id, $countrycode, $mobile, $messagetemplate, $testCall, $otp){
    if(!class_exists('digits_Panelchi')){
        require_once __DIR__ .'/panelchi/class-panelchi.php';
    }
    try {
        $panelchiSettings = get_option('digit_panelchi');
        $panelchi = new digits_Panelchi($panelchiSettings);
        $pattern = $panelchiSettings['pattern'];
        $param = array ( 'otp' => $otp, 'to' => $mobile, 'message' => $messagetemplate, );
        if ($pattern == 1) {
            $result = $panelchi->sendPattern( $param );
        }
        else {
            $result = $panelchi->send( $param );
        }
        $response = json_decode($result, true);
        $success_message = 'ارسال موفقیت آمیز ';
        $fault_message = 'خطا در ارسال. پاسخ پنل پیامک: ';
        if (isset($response['data']['cost'])) {
            if ($testCall) return $success_message;
            return true;
        }
        else{
            $error_message = isset($response['title']) ? $response['title'].' '.'- '.$response['detail']  : 'خطای نامشخص';
            $error_code = isset($response['code']) ? $response['code'] : 'نامشخص';
            if ($testCall) return $fault_message.$error_code . " - " . $error_message;
            error_log("panelchi SMS failed :".json_encode(array('message'=>$messagetemplate,'to'=>$mobile,'error'=>$error_message,'error_code'=>$error_code)));
            return false;
        }
    }
    catch (Exception $e) {
        return false;
    }
}
