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];
}
Skip to content
خطط توزيع منهج اللغة العربية || المرحلة الثانوية 2022_2023
اختبار تجريبي انجليزي للصف الثاني عشر الفصل الثاني
اختبار لغة عربية بالاجابة للصف الثاني عشر الترم التاني
امتحان اللغة الفرنسية للصف الثاني عشر الترم التاني
امتحان نحو وصرف بالاجابة للصف الثاني عشر ترم تاني
شرح فلسفة انفوجرافيك للصف الثاني عشر الفصل الثاني
مذكرة شرح تاريخ ابو محمد للصف الثاني عشر الترم التاني
مذكرة ابو محمد دستور الصف الثاني عشر ترم تاني
جاري تجهيز الملف المطلوب
[ اشغل وقتك بذكر الله ]