mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-07-11 18:56:10 +09:00
- fixed social URLs where user can put his social username (e.g. Instagram, Facebook);
- WPCS for the built-in fields; - added blueprint.json;
This commit is contained in:
@@ -769,23 +769,23 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
$this->predefined_fields = array(
|
||||
|
||||
'user_login' => array(
|
||||
'title' => __('Username','ultimate-member'),
|
||||
'title' => __( 'Username', 'ultimate-member' ),
|
||||
'metakey' => 'user_login',
|
||||
'type' => 'text',
|
||||
'label' => __('Username','ultimate-member'),
|
||||
'label' => __( 'Username', 'ultimate-member' ),
|
||||
'required' => 1,
|
||||
'public' => 1,
|
||||
'editable' => false,
|
||||
'validate' => 'unique_username',
|
||||
'min_chars' => 3,
|
||||
'max_chars' => 24
|
||||
'max_chars' => 24,
|
||||
),
|
||||
|
||||
'username' => array(
|
||||
'title' => __('Username or Email','ultimate-member'),
|
||||
'title' => __( 'Username or Email', 'ultimate-member' ),
|
||||
'metakey' => 'username',
|
||||
'type' => 'text',
|
||||
'label' => __('Username or Email','ultimate-member'),
|
||||
'label' => __( 'Username or Email', 'ultimate-member' ),
|
||||
'required' => 1,
|
||||
'public' => 1,
|
||||
'editable' => false,
|
||||
@@ -793,10 +793,10 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
),
|
||||
|
||||
'user_password' => array(
|
||||
'title' => __('Password','ultimate-member'),
|
||||
'title' => __( 'Password', 'ultimate-member' ),
|
||||
'metakey' => 'user_password',
|
||||
'type' => 'password',
|
||||
'label' => __('Password','ultimate-member'),
|
||||
'label' => __( 'Password', 'ultimate-member' ),
|
||||
'required' => 1,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
@@ -804,55 +804,55 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
'max_chars' => 30,
|
||||
'force_good_pass' => 1,
|
||||
'force_confirm_pass' => 1,
|
||||
'label_confirm_pass' => __('Confirm Password','ultimate-member')
|
||||
'label_confirm_pass' => __( 'Confirm Password', 'ultimate-member' ),
|
||||
),
|
||||
|
||||
'first_name' => array(
|
||||
'title' => __('First Name','ultimate-member'),
|
||||
'title' => __( 'First Name', 'ultimate-member' ),
|
||||
'metakey' => 'first_name',
|
||||
'type' => 'text',
|
||||
'label' => __('First Name','ultimate-member'),
|
||||
'label' => __( 'First Name', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
),
|
||||
|
||||
'last_name' => array(
|
||||
'title' => __('Last Name','ultimate-member'),
|
||||
'title' => __( 'Last Name', 'ultimate-member' ),
|
||||
'metakey' => 'last_name',
|
||||
'type' => 'text',
|
||||
'label' => __('Last Name','ultimate-member'),
|
||||
'label' => __( 'Last Name', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
),
|
||||
|
||||
'nickname' => array(
|
||||
'title' => __('Nickname','ultimate-member'),
|
||||
'title' => __( 'Nickname', 'ultimate-member' ),
|
||||
'metakey' => 'nickname',
|
||||
'type' => 'text',
|
||||
'label' => __('Nickname','ultimate-member'),
|
||||
'label' => __( 'Nickname', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
),
|
||||
|
||||
'user_url' => array(
|
||||
'title' => __('Website URL','ultimate-member'),
|
||||
'title' => __( 'Website URL', 'ultimate-member' ),
|
||||
'metakey' => 'user_url',
|
||||
'type' => 'url',
|
||||
'label' => __('Website URL','ultimate-member'),
|
||||
'label' => __( 'Website URL', 'ultimate-member' ),
|
||||
'required' => 1,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
'validate' => 'url'
|
||||
'validate' => 'url',
|
||||
),
|
||||
|
||||
'user_registered' => array(
|
||||
'title' => __('Registration Date','ultimate-member'),
|
||||
'title' => __( 'Registration Date', 'ultimate-member' ),
|
||||
'metakey' => 'user_registered',
|
||||
'type' => 'text',
|
||||
'label' => __('Registration Date','ultimate-member'),
|
||||
'label' => __( 'Registration Date', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
@@ -871,39 +871,39 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
),
|
||||
|
||||
'user_email' => array(
|
||||
'title' => __('Email Address','ultimate-member'),
|
||||
'title' => __( 'Email Address', 'ultimate-member' ),
|
||||
'metakey' => 'user_email',
|
||||
'type' => 'text',
|
||||
'label' => __('Email Address','ultimate-member'),
|
||||
'label' => __( 'Email Address', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'validate' => 'unique_email',
|
||||
'autocomplete' => 'off'
|
||||
'autocomplete' => 'off',
|
||||
),
|
||||
|
||||
'secondary_user_email' => array(
|
||||
'title' => __('Secondary Email Address','ultimate-member'),
|
||||
'title' => __( 'Secondary Email Address', 'ultimate-member' ),
|
||||
'metakey' => 'secondary_user_email',
|
||||
'type' => 'text',
|
||||
'label' => __('Secondary Email Address','ultimate-member'),
|
||||
'label' => __( 'Secondary Email Address', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
'validate' => 'unique_email',
|
||||
'autocomplete' => 'off'
|
||||
'autocomplete' => 'off',
|
||||
),
|
||||
|
||||
'description' => array(
|
||||
'title' => __('Biography','ultimate-member'),
|
||||
'title' => __( 'Biography', 'ultimate-member' ),
|
||||
'metakey' => 'description',
|
||||
'type' => 'textarea',
|
||||
'label' => __('Biography','ultimate-member'),
|
||||
'label' => __( 'Biography', 'ultimate-member' ),
|
||||
'html' => 0,
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
'max_words' => 40,
|
||||
'placeholder' => __('Enter a bit about yourself...','ultimate-member'),
|
||||
'placeholder' => __( 'Enter a bit about yourself...', 'ultimate-member' ),
|
||||
),
|
||||
|
||||
'birth_date' => array(
|
||||
@@ -921,33 +921,36 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
),
|
||||
|
||||
'gender' => array(
|
||||
'title' => __('Gender','ultimate-member'),
|
||||
'title' => __( 'Gender', 'ultimate-member' ),
|
||||
'metakey' => 'gender',
|
||||
'type' => 'radio',
|
||||
'label' => __('Gender','ultimate-member'),
|
||||
'label' => __( 'Gender', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
'options' => array( __('Male','ultimate-member'), __('Female','ultimate-member') )
|
||||
'options' => array(
|
||||
__( 'Male', 'ultimate-member' ),
|
||||
__( 'Female', 'ultimate-member' ),
|
||||
),
|
||||
),
|
||||
|
||||
'country' => array(
|
||||
'title' => __('Country','ultimate-member'),
|
||||
'title' => __( 'Country', 'ultimate-member' ),
|
||||
'metakey' => 'country',
|
||||
'type' => 'select',
|
||||
'label' => __('Country','ultimate-member'),
|
||||
'placeholder' => __('Choose a Country','ultimate-member'),
|
||||
'label' => __( 'Country', 'ultimate-member' ),
|
||||
'placeholder' => __( 'Choose a Country', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
'options' => $this->get('countries')
|
||||
'options' => $this->get( 'countries' ),
|
||||
),
|
||||
|
||||
'facebook' => array(
|
||||
'title' => __('Facebook','ultimate-member'),
|
||||
'title' => __( 'Facebook', 'ultimate-member' ),
|
||||
'metakey' => 'facebook',
|
||||
'type' => 'url',
|
||||
'label' => __('Facebook','ultimate-member'),
|
||||
'label' => __( 'Facebook', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
@@ -980,10 +983,10 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
),
|
||||
|
||||
'linkedin' => array(
|
||||
'title' => __('LinkedIn','ultimate-member'),
|
||||
'title' => __( 'LinkedIn', 'ultimate-member' ),
|
||||
'metakey' => 'linkedin',
|
||||
'type' => 'url',
|
||||
'label' => __('LinkedIn','ultimate-member'),
|
||||
'label' => __( 'LinkedIn', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
@@ -998,10 +1001,10 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
),
|
||||
|
||||
'instagram' => array(
|
||||
'title' => __('Instagram','ultimate-member'),
|
||||
'title' => __( 'Instagram', 'ultimate-member' ),
|
||||
'metakey' => 'instagram',
|
||||
'type' => 'url',
|
||||
'label' => __('Instagram','ultimate-member'),
|
||||
'label' => __( 'Instagram', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
@@ -1016,10 +1019,10 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
),
|
||||
|
||||
'skype' => array(
|
||||
'title' => __('Skype ID','ultimate-member'),
|
||||
'title' => __( 'Skype ID', 'ultimate-member' ),
|
||||
'metakey' => 'skype',
|
||||
'type' => 'text',
|
||||
'label' => __('Skype ID','ultimate-member'),
|
||||
'label' => __( 'Skype ID', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
@@ -1031,10 +1034,10 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
),
|
||||
|
||||
'viber' => array(
|
||||
'title' => __('Viber number','ultimate-member'),
|
||||
'title' => __( 'Viber number', 'ultimate-member' ),
|
||||
'metakey' => 'viber',
|
||||
'type' => 'text',
|
||||
'label' => __('Viber number','ultimate-member'),
|
||||
'label' => __( 'Viber number', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
@@ -1045,10 +1048,10 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
),
|
||||
|
||||
'whatsapp' => array(
|
||||
'title' => __('WhatsApp number','ultimate-member'),
|
||||
'title' => __( 'WhatsApp number', 'ultimate-member' ),
|
||||
'metakey' => 'whatsapp',
|
||||
'type' => 'text',
|
||||
'label' => __('WhatsApp number','ultimate-member'),
|
||||
'label' => __( 'WhatsApp number', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
@@ -1059,10 +1062,10 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
),
|
||||
|
||||
'telegram' => array(
|
||||
'title' => __('Telegram','ultimate-member'),
|
||||
'title' => __( 'Telegram', 'ultimate-member' ),
|
||||
'metakey' => 'telegram',
|
||||
'type' => 'url',
|
||||
'label' => __('Telegram','ultimate-member'),
|
||||
'label' => __( 'Telegram', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
@@ -1075,10 +1078,10 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
),
|
||||
|
||||
'discord' => array(
|
||||
'title' => __('Discord','ultimate-member'),
|
||||
'title' => __( 'Discord', 'ultimate-member' ),
|
||||
'metakey' => 'discord',
|
||||
'type' => 'text',
|
||||
'label' => __('Discord ID','ultimate-member'),
|
||||
'label' => __( 'Discord ID', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
@@ -1088,10 +1091,10 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
),
|
||||
|
||||
'tiktok' => array(
|
||||
'title' => __('TikTok','ultimate-member'),
|
||||
'title' => __( 'TikTok', 'ultimate-member' ),
|
||||
'metakey' => 'tiktok',
|
||||
'type' => 'url',
|
||||
'label' => __('TikTok','ultimate-member'),
|
||||
'label' => __( 'TikTok', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
@@ -1106,10 +1109,10 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
),
|
||||
|
||||
'twitch' => array(
|
||||
'title' => __('Twitch','ultimate-member'),
|
||||
'title' => __( 'Twitch', 'ultimate-member' ),
|
||||
'metakey' => 'twitch',
|
||||
'type' => 'url',
|
||||
'label' => __('Twitch','ultimate-member'),
|
||||
'label' => __( 'Twitch', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
@@ -1124,10 +1127,10 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
),
|
||||
|
||||
'reddit' => array(
|
||||
'title' => __('Reddit','ultimate-member'),
|
||||
'title' => __( 'Reddit', 'ultimate-member' ),
|
||||
'metakey' => 'reddit',
|
||||
'type' => 'url',
|
||||
'label' => __('Reddit','ultimate-member'),
|
||||
'label' => __( 'Reddit', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
@@ -1181,11 +1184,11 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
),
|
||||
|
||||
'role_select' => array(
|
||||
'title' => __('Roles (Dropdown)','ultimate-member'),
|
||||
'title' => __( 'Roles (Dropdown)', 'ultimate-member' ),
|
||||
'metakey' => 'role_select',
|
||||
'type' => 'select',
|
||||
'label' => __('Account Type','ultimate-member'),
|
||||
'placeholder' => 'Choose account type',
|
||||
'label' => __( 'Account Type', 'ultimate-member' ),
|
||||
'placeholder' => __( 'Choose account type', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
@@ -1193,10 +1196,10 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
),
|
||||
|
||||
'role_radio' => array(
|
||||
'title' => __('Roles (Radio)','ultimate-member'),
|
||||
'title' => __( 'Roles (Radio)', 'ultimate-member' ),
|
||||
'metakey' => 'role_radio',
|
||||
'type' => 'radio',
|
||||
'label' => __('Account Type','ultimate-member'),
|
||||
'label' => __( 'Account Type', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
@@ -1204,22 +1207,22 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
),
|
||||
|
||||
'languages' => array(
|
||||
'title' => __('Languages','ultimate-member'),
|
||||
'title' => __( 'Languages', 'ultimate-member' ),
|
||||
'metakey' => 'languages',
|
||||
'type' => 'multiselect',
|
||||
'label' => __('Languages Spoken','ultimate-member'),
|
||||
'placeholder' => __('Select languages','ultimate-member'),
|
||||
'label' => __( 'Languages Spoken', 'ultimate-member' ),
|
||||
'placeholder' => __( 'Select languages', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
'options' => $this->get('languages'),
|
||||
'options' => $this->get( 'languages' ),
|
||||
),
|
||||
|
||||
'phone_number' => array(
|
||||
'title' => __('Phone Number','ultimate-member'),
|
||||
'title' => __( 'Phone Number', 'ultimate-member' ),
|
||||
'metakey' => 'phone_number',
|
||||
'type' => 'tel',
|
||||
'label' => __('Phone Number','ultimate-member'),
|
||||
'label' => __( 'Phone Number', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
@@ -1228,10 +1231,10 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
),
|
||||
|
||||
'mobile_number' => array(
|
||||
'title' => __('Mobile Number','ultimate-member'),
|
||||
'title' => __( 'Mobile Number', 'ultimate-member' ),
|
||||
'metakey' => 'mobile_number',
|
||||
'type' => 'tel',
|
||||
'label' => __('Mobile Number','ultimate-member'),
|
||||
'label' => __( 'Mobile Number', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
@@ -1365,7 +1368,7 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
'default' => __( 'No', 'ultimate-member' ),
|
||||
'options' => array(
|
||||
__( 'Yes', 'ultimate-member' ),
|
||||
__( 'No', 'ultimate-member' )
|
||||
__( 'No', 'ultimate-member' ),
|
||||
),
|
||||
'account_only' => true,
|
||||
),
|
||||
@@ -1380,28 +1383,32 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
'editable' => true,
|
||||
'account_only' => true,
|
||||
),
|
||||
|
||||
);
|
||||
|
||||
/**
|
||||
* UM hook
|
||||
* Filters Ultimate Member predefined fields.
|
||||
*
|
||||
* @type filter
|
||||
* @title um_predefined_fields_hook
|
||||
* @description Extend Predefined Fields
|
||||
* @input_vars
|
||||
* [{"var":"$predefined_fields","type":"array","desc":"Predefined Fields"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage add_filter( 'um_predefined_fields_hook', 'function_name', 10, 1 );
|
||||
* @example
|
||||
* <?php
|
||||
* add_filter( 'um_predefined_fields_hook', 'my_predefined_fields', 10, 1 );
|
||||
* function my_predefined_fields( $predefined_fields ) {
|
||||
* // your code here
|
||||
* return $predefined_fields;
|
||||
* @param {array} $fields Predefined fields.
|
||||
*
|
||||
* @return {array} Predefined fields.
|
||||
*
|
||||
* @since 1.3.x
|
||||
* @hook um_predefined_fields_hook
|
||||
*
|
||||
* @example <caption>Add predefined field.</caption>
|
||||
* function my_predefined_fields( $fields ) {
|
||||
* $fields['um_custom'] = array(
|
||||
* 'title' => __( 'Custom text field', 'ultimate-member' ),
|
||||
* 'metakey' => 'um_custom',
|
||||
* 'type' => 'text',
|
||||
* 'label' => __( 'Custom text field', 'ultimate-member' ),
|
||||
* 'required' => 1,
|
||||
* 'public' => 1,
|
||||
* 'editable' => true,
|
||||
* );
|
||||
* return $fields;
|
||||
* }
|
||||
* ?>
|
||||
* add_filter( 'um_predefined_fields_hook', 'my_predefined_fields' );
|
||||
*/
|
||||
$this->predefined_fields = apply_filters( 'um_predefined_fields_hook', $this->predefined_fields );
|
||||
}
|
||||
|
||||
@@ -786,7 +786,7 @@ if ( ! class_exists( 'um\core\Form' ) ) {
|
||||
$f = UM()->builtin()->get_a_field( $k );
|
||||
|
||||
if ( is_array( $f ) && array_key_exists( 'match', $f ) && array_key_exists( 'advanced', $f ) && 'social' === $f['advanced'] ) {
|
||||
$v = esc_url_raw( $form[ $k ] );
|
||||
$v = $form[ $k ];
|
||||
|
||||
// Make a proper social link
|
||||
if ( ! empty( $v ) ) {
|
||||
@@ -833,7 +833,7 @@ if ( ! class_exists( 'um\core\Form' ) ) {
|
||||
}
|
||||
}
|
||||
|
||||
$form[ $k ] = $v;
|
||||
$form[ $k ] = esc_url_raw( $v );
|
||||
} else {
|
||||
$form[ $k ] = esc_url_raw( $form[ $k ] );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user