From ce3fbbc512caf86d3f1551e069eb35c9208d1dc0 Mon Sep 17 00:00:00 2001 From: ashubawork <43743394+ashubawork@users.noreply.github.com> Date: Tue, 5 Oct 2021 10:05:16 +0300 Subject: [PATCH] - fixed the skype field for new skype id - added viber, whatsapp and telegram fields --- includes/core/class-builtin.php | 46 +++++++++++++++++++++++++ includes/core/um-actions-form.php | 6 ++++ includes/core/um-filters-fields.php | 53 +++++++++++++++++++++++++++-- 3 files changed, 103 insertions(+), 2 deletions(-) diff --git a/includes/core/class-builtin.php b/includes/core/class-builtin.php index 3d30bfd0..13f3dcd2 100644 --- a/includes/core/class-builtin.php +++ b/includes/core/class-builtin.php @@ -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'); /** diff --git a/includes/core/um-actions-form.php b/includes/core/um-actions-form.php index ac20fdcf..cea1871a 100644 --- a/includes/core/um-actions-form.php +++ b/includes/core/um-actions-form.php @@ -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'] ) ); diff --git a/includes/core/um-filters-fields.php b/includes/core/um-filters-fields.php index 35761200..a3cce8f7 100644 --- a/includes/core/um-filters-fields.php +++ b/includes/core/um-filters-fields.php @@ -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 = '' . esc_html( $value ) . ''; + 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 = '' . esc_html( $value ) . ''; + 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 = ''.$value.''; - + if ( strpos( $value, '.cid.' ) !== 0 ) { + $value = '' . $value . ''; + } else { + $value = '' . esc_html__( 'Skype' ) . ''; + } } 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; +} \ No newline at end of file