إذن المستخدم - تشغيل رمز على دور المستخدم (WordPress)
-
20-09-2019 - |
سؤال
أقوم بتطوير مكون إضافي مخصص في PHP بحيث لا يمكن استخدام المكونات الإضافية الموجودة. ما أريد تحقيقه هو أنني أريد عرض عنوان URL مختلف داخل منشور لبعض المستخدمين. بالنسبة للمستخدمين المسجلين في WordPress ، اتصل بي و "معتمد". أرغب في إعداد حقل ملف تعريف المستخدم الإضافي هذا حتى أتمكن من استخدام هذا الحقل في حالة ما. لذا فإن الضيوف والمستخدمين الذين لا يحملون هذا الحقل أو بدون القيمة الصحيحة في هذا الحقل سيحصلون على url1 ولكن URL2 الأخرى.
المتطلبات
- فقط المستخدمين الذين لديهم دور المسؤول
- يمكن إنشاء/تحرير حقل ملف تعريف مستخدم إضافي
- لجميع المستخدمين الآخرين
أعرف كيف يمكنني إضافة حقل ملف تعريف مستخدم إضافي في WordPress (انظر الروابط أدناه) ، لكنني لا أعرف كيفية تقييد تحرير هذا الحقل للمستخدمين في دور معين وكيف يمكن للمستخدم مع دور المسؤول إنشاء/تحرير هذا المقدم جميع المستخدمين. يبدو لي أنه يتعين علي إضافة رمز جديد ضمن لوحة معلومات WordPress/المستخدمين/المستخدم و/أو لوحة القيادة/المستخدمين/المؤلفين والمستخدمين.
قمت ببعض بحث Google ووجدت بعض المواقع حول كيفية إضافة حقل ملف تعريف مستخدم إضافي
- إضافة واستخدام حقول ملف تعريف المستخدم المخصص
- حقول اتصال المستخدم في WordPress 2.9
- إضافة بيانات إلى حقل المستخدم في WordPress
يبدو لي أن إضافة واستخدام حقول ملف تعريف المستخدم المخصص هو ما أريد أن أفعله تقريبًا ، لكنني ما زلت لا أعرف كيفية إدارة "المسؤول الوحيد" يمكنه القيام بذلك.
المحلول
وماذا عن هذا:
$ID="2";
$user = new WP_User($ID);
if ($user->wp_capabilities['administrator']==1) {
//code here
}
انظر هذا الرابط عن قدرات المستخدم لـ WordPress
لذلك مع ما سبق ، وهذا الرابط الذي قدمته ، ربما شيء من هذا القبيل:
function my_show_extra_profile_fields( $user ) {
if ($user->wp_capabilities['administrator']!=1) {
return false;
} ?>
<h3>Extra profile information</h3>
<table class="form-table">
<tr>
<th><label for="twitter">Twitter</label></th>
<td>
<input type="text" name="twitter" id="twitter" value="<?php echo esc_attr( get_the_author_meta( 'twitter', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description">Please enter your Twitter username.</span>
</td>
</tr>
</table>
<?php }