From 904af72c18da0c6e18b6d01a533cf397a4175971 Mon Sep 17 00:00:00 2001 From: Steve Sutton Date: Wed, 1 Feb 2017 12:31:21 -0500 Subject: [PATCH] Setting up filter for the phone output. Setting up a filter for the phone number to format it. Does only the (xxx) xxx-xxxx format so far. --- setup/frontHooks.php | 28 ++++++++++++++++++++++++++++ views/front/members/detail.html | 5 +++-- views/front/members/list.html | 12 ++++++------ 3 files changed, 37 insertions(+), 8 deletions(-) diff --git a/setup/frontHooks.php b/setup/frontHooks.php index db87c01f..dca5b761 100644 --- a/setup/frontHooks.php +++ b/setup/frontHooks.php @@ -324,6 +324,34 @@ add_filter('glm_associate_member', function( $attribute ) { $result = $wpdb->get_var( "SELECT $attribute FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX . "members WHERE member_slug = '".$GLOBALS['glmDetailSlug']."'" ); return $result; }); +add_filter('glm_associate_phone_filter', function( $phone ){ + // Ditch anything that is not a number + $number = preg_replace('/[^0-9]/', '', $phone); + + // Invalid Number, validation will catch error + $len = strlen($number); + if (($len < 10) || ($len > 11)) { + return $phone; + } + + // subscriber number + $sn = substr($number, -4); + // city code + $cc = substr($number, -7, 3); + // area code + $ac = substr($number, -10, 3); + if ($len == 11) { + // country prefix + $cp = $number[0]; + } + + $filteredNumber = "($ac) $cc-$sn"; + if (isset($cp) && !is_null($cp)) { + $filteredNumber = "$cp $filteredNumber"; + } + + return $filteredNumber; +}); function get_member_name( $id = 0 ) { global $wpdb; diff --git a/views/front/members/detail.html b/views/front/members/detail.html index 4f0ff067..88d7fdb5 100644 --- a/views/front/members/detail.html +++ b/views/front/members/detail.html @@ -98,18 +98,19 @@ {$terms.term_admin_menu_configure_regions}: {$member.region} {/if} + {debug}
{if ($member.phone && $settings.detail_show_phone) || ($member.toll_free && $settings.detail_show_tollfree)} Phone {/if} {if $member.phone && $settings.detail_show_phone}
-
{$member.phone}
+
{apply_filters('glm_associate_phone_filter', $member.phone)}
{/if} {if $member.toll_free && $settings.detail_show_tollfree}
-
{$member.toll_free}
+
{apply_filters('glm_associate_phone_filter', $member.toll_free)}
{/if}
diff --git a/views/front/members/list.html b/views/front/members/list.html index 7d2f7b52..33c411b3 100644 --- a/views/front/members/list.html +++ b/views/front/members/list.html @@ -221,8 +221,8 @@ {/if} {*list_map_show_address*}

- {if $member.phone && $settings.list_map_show_phone}Phone: {$member.phone}
{/if} - {if $member.toll_free && $settings.list_map_show_tollfree}{$member.toll_free}
{/if} + {if $member.phone && $settings.list_map_show_phone}Phone: {apply_filters('glm_associate_phone_filter', $member.phone)}
{/if} + {if $member.toll_free && $settings.list_map_show_tollfree}{apply_filters('glm_associate_phone_filter', $member.toll_free)}
{/if} {if $member.url && $settings.list_map_show_url}Web site: {$member.url}
{/if} {if $member.email && $settings.list_map_show_email}E-Mail Address: {$member.email}
{/if} {if $member.region && $settings.list_map_show_region}Region: {$member.region}{/if} @@ -334,8 +334,8 @@ {apply_filters('glm-member-db-front-members-list-memberDetailTop', '', $member.member_pointer)} {if ($member.phone && $settings.list_show_phone) || ($member.toll_free && $settings.list_show_tollfree)}

- {if $member.phone && $settings.list_show_phone}Phone: {$member.phone} {/if} - {if $member.toll_free && $settings.list_show_tollfree}{$member.toll_free}{/if} + {if $member.phone && $settings.list_show_phone}Phone: {apply_filters('glm_associate_phone_filter', $member.phone)} {/if} + {if $member.toll_free && $settings.list_show_tollfree}{apply_filters('glm_associate_phone_filter', $member.toll_free)}{/if}
{/if} {if $member.region && $settings.list_show_region}
Region: {$member.region}
{/if} @@ -435,8 +435,8 @@ {/if} {*list_map_show_address*}

- {if $member.phone && $settings.list_map_show_phone}Phone: {$member.phone}
{/if} - {if $member.toll_free && $settings.list_map_show_tollfree}{$member.toll_free}
{/if} + {if $member.phone && $settings.list_map_show_phone}Phone: {apply_filters('glm_associate_phone_filter', $member.phone)}
{/if} + {if $member.toll_free && $settings.list_map_show_tollfree}{apply_filters('glm_associate_phone_filter', $member.toll_free)}
{/if} {if $member.url && $settings.list_map_show_url}Web site: {$member.url}
{/if} {if $member.email && $settings.list_map_show_email}E-Mail Address: {$member.email}
{/if} {if $member.region && $settings.list_map_show_region}Region: {$member.region}{/if} -- 2.17.1