function arw_render_page() {
/*—- حماية الصفحة —-*/
if ( ! current_user_can('manage_options') && ! current_user_can('manage_woocommerce') ) {
wp_redirect( home_url('/my-account/') );
exit;
}
/*—- التبويبات —-*/
$active_tab = isset($_GET['tab']) ? sanitize_key($_GET['tab']) : 'change_role';
echo '
';
echo '
🛠️ إدارة أدوار المستخدم & رسائل واتساب
';
echo '
';
/*--------------------------------------------------------------
التبويب الأول: تغيير الدور
--------------------------------------------------------------*/
if ( $active_tab === 'change_role' ) {
/*—- معالجة الحفظ والإرسال —-*/
if ( isset($_POST['user_id'], $_POST['new_role']) ) {
$user_id = intval( $_POST['user_id'] );
$new_role = sanitize_text_field( $_POST['new_role'] );
$user = get_user_by( 'ID', $user_id );
if ( $user ) {
$user->set_role( $new_role );
$full_name = trim( $user->first_name . ' ' . $user->last_name );
$phone = get_user_meta( $user_id, 'billing_phone', true );
/*—- جلب الرسالة من الإعدادات (إن وُجدت) —-*/
$message_template = get_option( "arw_msg_{$new_role}", '' );
if ( ! $message_template ) {
// fallback إلى رسائل ثابتة (يمكن حذف هذا القسم إن أردت الاعتماد كلياً على صفحة الرسائل)
switch ( $new_role ) {
case 'shop_owner':
$message_template = "✅ مرحبًا {name}، تمت ترقيتك إلى \"صاحب محل\".\n🔗 {login_url}";
break;
case 'shop_manager':
$message_template = "✅ مرحبًا {name}، تم تعيينك كمدير متجر.";
break;
case 'worker':
$message_template = "✅ مرحبًا {name}، تم تعيينك كمجهز.\n🔗 {login_url}";
break;
default:
$message_template = "✅ مرحبًا {name}، تم تحديث دورك إلى: {$new_role}";
break;
}
}
/*—- استبدال المتغيّرات —-*/
$message = str_replace(
['{name}', '{login_url}'],
[$full_name, ARW_LOGIN_URL],
$message_template
);
/*—- إرسال واتساب —-*/
if ( $phone ) {
wp_remote_post( 'https://app.wawp.net/api/send', [
'method' => 'POST',
'headers' => [ 'Content-Type' => 'application/json' ],
'body' => wp_json_encode([
'number' => $phone,
'type' => 'text',
'message' => $message,
'instance_id' => ARW_INSTANCE_ID,
'access_token' => ARW_ACCESS_TOKEN,
]),
] );
echo "
✅ تم تغيير الدور وإرسال رسالة واتساب إلى {$full_name} ({$phone}).
";
} else {
echo "
⚠️ لم يتم العثور على رقم الهاتف.
";
}
} else {
echo "
❌ لم يتم العثور على المستخدم.
";
}
}
/*—- نموذج البحث + اختيار المستخدم/الدور —-*/
$search_query = isset($_GET['search_user']) ? sanitize_text_field($_GET['search_user']) : '';
$all_users = get_users();
$users = array_filter( $all_users, function( $u ) use ( $search_query ) {
$full = strtolower( trim( $u->first_name . ' ' . $u->last_name ) );
$tel = get_user_meta( $u->ID, 'billing_phone', true );
$s = strtolower( $search_query );
return ! $search_query || strpos( $full, $s ) !== false || strpos( $tel, $s ) !== false;
});
$role_names = [
'administrator' => 'مدير عام',
'shop_manager' => 'مدير متجر',
'shop_owner' => 'صاحب محل',
'worker' => 'مجهز',
'customer' => 'عميل',
'subscriber' => 'مشترك',
];
echo '
';
echo '
';
/*--------------------------------------------------------------
التبويب الثاني: رسائل واتساب
--------------------------------------------------------------*/
} else {
/*—- حفظ الرسائل —-*/
if ( isset($_POST['arw_messages']) ) {
foreach ( $_POST['arw_messages'] as $role => $msg ) {
update_option( "arw_msg_{$role}", sanitize_textarea_field( $msg ) );
}
echo '
';
}
$editable_roles = [
'shop_owner' => 'صاحب محل',
'shop_manager' => 'مدير متجر',
'worker' => 'مجهز',
];
echo '
';
}
echo '
'; // .wrap
}