if ( ! defined('ABSPATH') ) { return; }

/* ============================================================
* KT WhatsApp Bot v0.1 — تجريبي
* قائمة تفاعلية للمعلنين المسجلين عبر Wawp Webhooks
* نقطة الاستقبال: /wp-json/ktwa/v1/hook?k=KTWA_BOT_KEY
* عرض السجل: /wp-json/ktwa/v1/log?k=KTWA_BOT_KEY
* ============================================================ */

if ( ! defined('KTWA_BOT_KEY') ) define('KTWA_BOT_KEY', 'ktB7q2Zr9xW4mUe6');
if ( ! defined('KTWA_BOT_INST') ) define('KTWA_BOT_INST', 'BEC645FC4D5D');
if ( ! defined('KTWA_ADMIN_PHONE') ) define('KTWA_ADMIN_PHONE', '96566551276');

add_action('rest_api_init', function(){
register_rest_route('ktwa/v1','/hook',[ 'methods'=>'POST','permission_callback'=>'__return_true','callback'=>'ktwa_bot_hook' ]);
register_rest_route('ktwa/v1','/log',[ 'methods'=>'GET','permission_callback'=>'__return_true','callback'=>'ktwa_bot_logview' ]);
});

function ktwa_bot_logpush($tag,$data){
$l=get_option('ktwa_bot_log',[]); if(!is_array($l)) $l=[];
array_unshift($l,[ 't'=>current_time('mysql'), 'tag'=>$tag, 'd'=>$data ]);
update_option('ktwa_bot_log', array_slice($l,0,15), false);
}
function ktwa_bot_logview($req){
if($req->get_param('k')!==KTWA_BOT_KEY) return new WP_REST_Response(['e'=>'forbidden'],403);
return get_option('ktwa_bot_log',[]);
}

function ktwa_bot_norm($raw){
$d=preg_replace('/\D+/','',(string)$raw); $d=ltrim($d,'0');
if(strlen($d)===8) $d='965'.$d;
return $d;
}

function ktwa_bot_send_text($phone,$msg){
if(function_exists('kt_send_whatsapp_simple')) return kt_send_whatsapp_simple($phone,$msg);
return false;
}

function ktwa_bot_send_list($phone,$name,$tok){
$body=[ 'instance_id'=>KTWA_BOT_INST, 'access_token'=>$tok, 'chatId'=>$phone,
'message'=>[
'title'=>'صفوة معلمي الكويت',
'description'=>'أهلاً '.$name.' 👋 اختر الخدمة المطلوبة:',
'footer'=>'kuwaitteacher.com',
'button'=>'اختر من القائمة',
'sections'=>[
[ 'title'=>'خدمات المعلنين', 'rows'=>[
[ 'title'=>'💳 شحن رصيد إعلاني', 'rowId'=>'kt_recharge', 'description'=>'رصيدك الحالي ورابط الشحن' ],
[ 'title'=>'✏️ تعديل إعلاني', 'rowId'=>'kt_edit', 'description'=>'روابط تعديل إعلاناتك' ],
[ 'title'=>'📊 إحصاءات إعلاني', 'rowId'=>'kt_stats', 'description'=>'مشاهدات ونقرات ورصيد' ],
]],
[ 'title'=>'الدعم', 'rows'=>[
[ 'title'=>'🎧 التواصل مع الإدارة', 'rowId'=>'kt_support' ],
]],
],
],
];
$r=wp_remote_post('https://api.wawp.net/v2/send/list',[ 'timeout'=>15, 'headers'=>['Content-Type'=>'application/json'], 'body'=>wp_json_encode($body) ]);
ktwa_bot_logpush('send_list', is_wp_error($r)?$r->get_error_message():wp_remote_retrieve_response_code($r));
return $r;
}

function ktwa_bot_user_by_phone($digits){
foreach(['kt_user_whatsapp','kt_user_phone'] as $mk){
$q=get_users([ 'meta_key'=>$mk, 'meta_value'=>$digits, 'number'=>1 ]);
if($q) return $q[0];
if(strpos($digits,'965')===0){
$q=get_users([ 'meta_key'=>$mk, 'meta_value'=>substr($digits,3), 'number'=>1 ]);
if($q) return $q[0];
}
}
return null;
}

function ktwa_bot_hook($req){
if($req->get_param('k')!==KTWA_BOT_KEY) return new WP_REST_Response(['e'=>'forbidden'],403);
$j=json_decode($req->get_body(),true);
if(!is_array($j)) return ['ok'=>false];
$ev=isset($j['event'])?$j['event']:'';
$p=isset($j['payload'])&&is_array($j['payload'])?$j['payload']:[];
$info=isset($p['_data']['Info'])&&is_array($p['_data']['Info'])?$p['_data']['Info']:[];
ktwa_bot_logpush('evt:'.$ev,[
'from'=>isset($p['from'])?$p['from']:null,
'alt'=>isset($info['SenderAlt'])?$info['SenderAlt']:null,
'body'=>isset($p['body'])?mb_substr((string)$p['body'],0,90):null,
'pkeys'=>implode(',',array_keys($p)),
]);
if($ev!=='message') return ['ok'=>true,'skip'=>'event'];
if(!empty($p['fromMe'])) return ['ok'=>true,'skip'=>'self'];
if(!empty($info['IsGroup'])) return ['ok'=>true,'skip'=>'group'];
$meta=isset($j['metadata'])&&is_array($j['metadata'])?$j['metadata']:[];
if(!isset($meta['instance_id']) || $meta['instance_id']!==KTWA_BOT_INST) return ['ok'=>true,'skip'=>'inst'];
$tok=isset($meta['access_token'])?$meta['access_token']:'';

$alt=isset($info['SenderAlt'])?$info['SenderAlt']:'';
$src=$alt!==''?$alt:(isset($p['from'])?$p['from']:'');
if($src==='' || strpos($src,'@lid')!==false) return ['ok'=>true,'skip'=>'no-phone'];
$phone=ktwa_bot_norm(strtok($src,'@'));
if($phone==='' || $phone===ktwa_bot_norm('96560060470')) return ['ok'=>true,'skip'=>'own'];

$body=trim((string)(isset($p['body'])?$p['body']:''));
$route='';
if(isset($p['listResponse']['rowId'])) $route=$p['listResponse']['rowId'];
if($route==='' && isset($p['selectedRowId'])) $route=$p['selectedRowId'];
if($route==='' && $body!=='' && mb_strlen($body)<45){ $map=[ 'شحن'=>'kt_recharge', 'تعديل'=>'kt_edit', 'إحصاء'=>'kt_stats', 'احصاء'=>'kt_stats', 'الإدارة'=>'kt_support', 'الادارة'=>'kt_support' ];
foreach($map as $kw=>$rid){ if(mb_strpos($body,$kw)!==false){ $route=$rid; break; } }
}

$user=ktwa_bot_user_by_phone($phone);
if(!$user){
if(!get_transient('ktwa_wlc_'.$phone)){
set_transient('ktwa_wlc_'.$phone,1,DAY_IN_SECONDS);
ktwa_bot_send_text($phone,'أهلاً بك في منصة صفوة معلمي الكويت 🌟'."\n".'تصفح أفضل المعلمين والمعلمات عبر موقعنا:'."\n".home_url('/'));
}
return ['ok'=>true,'r'=>'guest'];
}
$name=trim((string)get_user_meta($user->ID,'first_name',true));
if($name==='') $name=$user->display_name;

if($route===''){
if(get_transient('ktwa_menu_'.$phone)) return ['ok'=>true,'skip'=>'cooldown'];
set_transient('ktwa_menu_'.$phone,1,20);
ktwa_bot_send_list($phone,$name,$tok);
return ['ok'=>true,'r'=>'menu'];
}

$ads=get_posts([ 'post_type'=>'edu-ads', 'post_status'=>['publish','private'], 'author'=>$user->ID, 'numberposts'=>5 ]);
$msg='';
if($route==='kt_recharge'){
$msg='💳 أرصدة إعلاناتك:'."\n";
foreach($ads as $a){ $pts=function_exists('kt_get_points')?kt_get_points($a->ID):(int)get_post_meta($a->ID,'kt_ad_points',true); $msg.='• «'.get_the_title($a).'»: '.$pts.' نقطة'."\n"; }
$msg.="\n".'للشحن وإدارة إعلانك:'."\n".home_url('/account/');
} elseif($route==='kt_edit'){
$msg='✏️ روابط تعديل إعلاناتك:'."\n";
foreach($ads as $a){ $msg.='• «'.get_the_title($a).'»:'."\n".home_url('/'.$a->ID)."\n"; }
} elseif($route==='kt_stats'){
$msg='📊 إحصاءات إعلاناتك:'."\n";
foreach($ads as $a){
$v=(int)get_post_meta($a->ID,'kt_ad_views_total',true);
$w=(int)get_post_meta($a->ID,'kt_ad_whatsapp_clicks_total',true);
$c=(int)get_post_meta($a->ID,'kt_ad_calls',true);
$pts=function_exists('kt_get_points')?kt_get_points($a->ID):(int)get_post_meta($a->ID,'kt_ad_points',true);
$msg.='• «'.get_the_title($a).'»: '.$v.' مشاهدة، '.$w.' نقرة واتساب، '.$c.' اتصال — الرصيد: '.$pts.' نقطة'."\n";
}
} elseif($route==='kt_support'){
$msg='🎧 تم إبلاغ الإدارة وسيتواصلون معك قريباً.'."\n".'شكراً لتواصلك 🌟';
ktwa_bot_send_text(KTWA_ADMIN_PHONE,'🔔 طلب تواصل مع الإدارة'."\n".'المعلن: '.$name."\n".'الرقم: '.$phone);
}
if($msg!=='') ktwa_bot_send_text($phone,$msg);
return ['ok'=>true,'r'=>$route];
}

جاري تجهيز الملف المطلوب
[ اشغل وقتك بذكر الله ]