mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-06-05 15:09:37 +09:00
Merge pull request #931 from ultimatemember/fix/social_user_fields
New user fields and skype fix (issue #926, #928)
This commit is contained in:
@@ -984,6 +984,51 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
'url_text' => 'Skype',
|
||||
),
|
||||
|
||||
'viber' => array(
|
||||
'title' => __('Viber number','ultimate-member'),
|
||||
'metakey' => 'viber',
|
||||
'type' => 'text',
|
||||
'label' => __('Viber number','ultimate-member'),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => 1,
|
||||
'url_target' => '_blank',
|
||||
'url_rel' => 'nofollow',
|
||||
'icon' => 'um-icon-ios-telephone',
|
||||
'validate' => 'phone_number',
|
||||
),
|
||||
|
||||
'whatsapp' => array(
|
||||
'title' => __('WhatsApp number','ultimate-member'),
|
||||
'metakey' => 'whatsapp',
|
||||
'type' => 'text',
|
||||
'label' => __('WhatsApp number','ultimate-member'),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => 1,
|
||||
'url_target' => '_blank',
|
||||
'url_rel' => 'nofollow',
|
||||
'icon' => 'um-icon-ios-telephone-outline',
|
||||
'validate' => 'phone_number',
|
||||
),
|
||||
|
||||
'telegram' => array(
|
||||
'title' => __('Telegram','ultimate-member'),
|
||||
'metakey' => 'telegram',
|
||||
'type' => 'url',
|
||||
'label' => __('Telegram','ultimate-member'),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => 1,
|
||||
'url_target' => '_blank',
|
||||
'url_rel' => 'nofollow',
|
||||
'icon' => 'um-faicon-paper-plane',
|
||||
'validate' => 'telegram_url',
|
||||
'url_text' => 'Telegram',
|
||||
'advanced' => 'social',
|
||||
'match' => 'https://t.me/',
|
||||
),
|
||||
|
||||
'youtube' => array(
|
||||
'title' => __('YouTube','ultimate-member'),
|
||||
'metakey' => 'youtube',
|
||||
@@ -1409,6 +1454,7 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
$array['unique_username_or_email'] = __('Unique Username/E-mail','ultimate-member');
|
||||
$array['url'] = __('Website URL','ultimate-member');
|
||||
$array['youtube_url'] = __('YouTube Profile','ultimate-member');
|
||||
$array['telegram_url'] = __('Telegram URL','ultimate-member');
|
||||
$array['custom'] = __('Custom Validation','ultimate-member');
|
||||
|
||||
/**
|
||||
|
||||
@@ -709,6 +709,12 @@ function um_submit_form_errors_hook_( $args ) {
|
||||
}
|
||||
break;
|
||||
|
||||
case 'telegram_url':
|
||||
if ( ! UM()->validation()->is_url( $args[ $key ], 't.me' ) ) {
|
||||
UM()->form()->add_error( $key, sprintf( __( 'Please enter a valid %s username or profile URL', 'ultimate-member' ), $array['label'] ) );
|
||||
}
|
||||
break;
|
||||
|
||||
case 'soundcloud_url':
|
||||
if ( ! UM()->validation()->is_url( $args[ $key ], 'soundcloud.com' ) ) {
|
||||
UM()->form()->add_error( $key, sprintf( __( 'Please enter a valid %s username or profile URL','ultimate-member'), $array['label'] ) );
|
||||
|
||||
@@ -99,6 +99,38 @@ function um_profile_field_filter_hook__vimeo_video( $value, $data ) {
|
||||
add_filter( 'um_profile_field_filter_hook__vimeo_video', 'um_profile_field_filter_hook__vimeo_video', 99, 2 );
|
||||
|
||||
|
||||
/**
|
||||
* Outputs a viber link
|
||||
*
|
||||
* @param $value
|
||||
* @param $data
|
||||
*
|
||||
* @return int|string
|
||||
*/
|
||||
function um_profile_field_filter_hook__viber( $value, $data ) {
|
||||
$value = str_replace('+', '', $value);
|
||||
$value = '<a href="viber://chat?number=%2B' . esc_attr( $value ) . '" target="_blank" rel="nofollow" title="' . esc_attr( $data['title'] ) . '">' . esc_html( $value ) . '</a>';
|
||||
return $value;
|
||||
}
|
||||
add_filter( 'um_profile_field_filter_hook__viber', 'um_profile_field_filter_hook__viber', 99, 2 );
|
||||
|
||||
|
||||
/**
|
||||
* Outputs a whatsapp link
|
||||
*
|
||||
* @param $value
|
||||
* @param $data
|
||||
*
|
||||
* @return int|string
|
||||
*/
|
||||
function um_profile_field_filter_hook__whatsapp( $value, $data ) {
|
||||
$value = str_replace('+', '', $value);
|
||||
$value = '<a href="https://api.whatsapp.com/send?phone=' . esc_attr( $value ) . '" target="_blank" rel="nofollow" title="' . esc_attr( $data['title'] ) . '">' . esc_html( $value ) . '</a>';
|
||||
return $value;
|
||||
}
|
||||
add_filter( 'um_profile_field_filter_hook__whatsapp', 'um_profile_field_filter_hook__whatsapp', 99, 2 );
|
||||
|
||||
|
||||
/**
|
||||
* Outputs a google map
|
||||
*
|
||||
@@ -362,9 +394,11 @@ function um_profile_field_filter_hook__( $value, $data, $type = '' ) {
|
||||
&& !strstr( $value, '.com' )
|
||||
&& !strstr( $value, '.net' )
|
||||
&& !strstr( $value, '.org' )
|
||||
&& !strstr( $value, '.me' )
|
||||
) {
|
||||
if ( $data['validate'] == 'soundcloud_url' ) $value = 'https://soundcloud.com/' . $value;
|
||||
if ( $data['validate'] == 'youtube_url' ) $value = 'https://youtube.com/user/' . $value;
|
||||
if ( $data['validate'] == 'telegram_url' ) $value = 'https://t.me/' . $value;
|
||||
if ( $data['validate'] == 'facebook_url' ) $value = 'https://facebook.com/' . $value;
|
||||
if ( $data['validate'] == 'twitter_url' ) $value = 'https://twitter.com/' . $value;
|
||||
if ( $data['validate'] == 'linkedin_url' ) $value = 'https://linkedin.com/' . $value;
|
||||
@@ -393,8 +427,11 @@ function um_profile_field_filter_hook__( $value, $data, $type = '' ) {
|
||||
$value = str_replace('http://','',$value );
|
||||
|
||||
$data['url_target'] = ( isset( $data['url_target'] ) ) ? $data['url_target'] : '_blank';
|
||||
$value = '<a href="'. 'skype:'.$value.'?chat'.'" title="'.$value.'" target="'.$data['url_target'].'" ' . $url_rel . '>'.$value.'</a>';
|
||||
|
||||
if ( strpos( $value, '.cid.' ) !== 0 ) {
|
||||
$value = '<a href="' . 'skype:' . $value . '?chat' . '" title="' . $value . '" target="' . $data['url_target'] . '" ' . $url_rel . '>' . $value . '</a>';
|
||||
} else {
|
||||
$value = '<a href="' . 'skype:live:' . $value . '?chat' . '" title="' . $value . '" target="' . $data['url_target'] . '" ' . $url_rel . '>' . esc_html__( 'Skype' ) . '</a>';
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! is_array( $value ) ) {
|
||||
@@ -858,3 +895,15 @@ function um_edit_url_field_value( $value, $key ) {
|
||||
return $value;
|
||||
}
|
||||
add_filter( 'um_edit_url_field_value', 'um_edit_url_field_value', 10, 2 );
|
||||
|
||||
|
||||
add_filter( 'um_submit_post_form', 'my_submit_post_form', 10, 1 );
|
||||
function my_submit_post_form( $data ) {
|
||||
$skype_key = 'skype-'. $data['form_id'];
|
||||
if ( array_key_exists( $skype_key , $data ) ) {
|
||||
$skype = str_replace('live:', '', $data[ $skype_key ] );
|
||||
$data[ $skype_key ] = $skype;
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
Reference in New Issue
Block a user