$body===null?'GET':'POST','headers'=>['Authorization'=>'Bearer '.$c['key'],'Content-Type'=>'application/json'],'body'=>$body===null?null:wp_json_encode($body),'timeout'=>25,'redirection'=>0,'sslverify'=>true]);
if(is_wp_error($r))return new WP_Error('sms_unavailable','Η υπηρεσία SMS δεν είναι διαθέσιμη.');
$d=json_decode(wp_remote_retrieve_body($r),true);if(wp_remote_retrieve_response_code($r)!==200||!is_array($d)){
$code=is_array($d)&&is_string($d['error']??null)?$d['error']:'sms_unavailable';
$messages=['forbidden'=>'Η τρέχουσα σύνδεση επιτρέπει μόνο έλεγχο τιμών. Για SMS χρειάζεται ολοκλήρωση της σύνδεσης του καταστήματος με τον δικό σου λογαριασμό CourierAPP.','unauthorized'=>'Η σύνδεση του καταστήματος έληξε ή ανακλήθηκε. Σύνδεσέ το ξανά με τον λογαριασμό σου.','rate_limited'=>'Πολλά αιτήματα σε μικρό διάστημα. Δοκίμασε ξανά σε ένα λεπτό.'];
return new WP_Error('sms_error',$messages[$code]??'Η ενέργεια SMS δεν ολοκληρώθηκε. Κωδικός: '.sanitize_text_field($code));
}return $d;
}
function courierapp_connect_sms_panel(){
if(!current_user_can('manage_woocommerce'))return;
echo ' Μόνο κεφαλαία, έως 160 μονάδες GSM-7 και 1 SMS ανά ενημέρωση. Προαιρετικές ενημερώσεις μεταφοράς, εξόδου για παράδοση και παράδοσης. Η δημιουργία ετικέτας δεν θεωρείται παραλαβή. '.esc_html(is_wp_error($saved)?$saved->get_error_message():'Οι ρυθμίσεις SMS αποθηκεύτηκαν.').' '.esc_html($preview->get_error_message()).' Προεπισκόπηση — δεν στάλθηκε SMS: '.esc_html($preview['text']).' '.esc_html($d->get_error_message()).'SMS ενημερώσεις CourierAPP
Τμήματα: '.esc_html((string)$preview['segments']).' · Ανώτατο εκτιμώμενο κόστος: '.esc_html(number_format($preview['cost_micros']/1000000,4)).' EUR
Αγορασμένα: '.esc_html((string)floor(($d['wallet_micros']??0)/120000)).' SMS · Διαθέσιμα: '.esc_html((string)floor(($d['available_micros']??$d['wallet_micros']??0)/120000)).'
'; if(($d['pending_funding_micros']??0)>0)echo 'Αναμονή ενεργοποίησης: '.esc_html((string)floor($d['pending_funding_micros']/120000)).' SMS. Το υπόλοιπο έχει καταχωρηθεί· απαιτείται τροφοδότηση του παρόχου.
'; echo 'Λειτουργία: '.esc_html($d['mode']).' · '.(!empty($s['enabled'])?'SMS ενεργά για νέες αποστολές':'SMS ανενεργά').'
'; if($d['mode']==='sandbox')echo 'Προσομοίωση SMS — δεν στέλνονται πραγματικά μηνύματα.
'; echo 'Τα κλειδιά αποθηκεύονται κρυπτογραφημένα στον server της CourierAPP και δεν εμφανίζονται ξανά. Οι σημερινές ενημερώσεις email συνεχίζουν κανονικά. Παλαιότερες αποστολές εξαιρούνται.
'; echo '| Ημερομηνία | Γεγονός | Κατάσταση | Τμήματα | Εκτίμηση EUR |
|---|---|---|---|---|
| '.esc_html($j['created_at']).' | '.esc_html($j['kind']).' | '.esc_html($j['status']).' | '.esc_html((string)$j['segments']).' | '.esc_html(number_format($j['cost_micros']/1000000,4)).' |