Setting up filter for the phone output.
authorSteve Sutton <steve@gaslightmedia.com>
Wed, 1 Feb 2017 17:31:21 +0000 (12:31 -0500)
committerSteve Sutton <steve@gaslightmedia.com>
Wed, 1 Feb 2017 17:31:21 +0000 (12:31 -0500)
Setting up a filter for the phone number to format it.
Does only the (xxx) xxx-xxxx format so far.

setup/frontHooks.php
views/front/members/detail.html
views/front/members/list.html

index db87c01..dca5b76 100644 (file)
@@ -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;
index 4f0ff06..88d7fdb 100644 (file)
                             <b>{$terms.term_admin_menu_configure_regions}: </b> {$member.region}
                         </div>
                     {/if}
+                    {debug}
                     <div class="glm-member-detail-phone-wrapper">
                         {if ($member.phone && $settings.detail_show_phone) || ($member.toll_free && $settings.detail_show_tollfree)}
                             <small class="glm-field-title">Phone</small>
                         {/if}
                         {if $member.phone && $settings.detail_show_phone}
                             <div class="glm-member-detail-contact-phone">
-                                <div class="glm-field-value">{$member.phone}</div>
+                                <div class="glm-field-value">{apply_filters('glm_associate_phone_filter', $member.phone)}</div>
                             </div>
                         {/if}
                         {if $member.toll_free && $settings.detail_show_tollfree}
                             <div>
-                                <div class="glm-field-value">{$member.toll_free}</div>
+                                <div class="glm-field-value">{apply_filters('glm_associate_phone_filter', $member.toll_free)}</div>
                             </div>
                         {/if}
                     </div>
index 7d2f7b5..33c411b 100644 (file)
                         {/if} {*list_map_show_address*}
                         <div class="glm-member-list-info">
                             <p>
-                                {if $member.phone && $settings.list_map_show_phone}<b>Phone:</b> {$member.phone}<br>{/if}
-                                {if $member.toll_free && $settings.list_map_show_tollfree}{$member.toll_free}<br>{/if}
+                                {if $member.phone && $settings.list_map_show_phone}<b>Phone:</b> {apply_filters('glm_associate_phone_filter', $member.phone)}<br>{/if}
+                                {if $member.toll_free && $settings.list_map_show_tollfree}{apply_filters('glm_associate_phone_filter', $member.toll_free)}<br>{/if}
                                 {if $member.url && $settings.list_map_show_url}<b>Web site:</b> <a href="{$member.url}"{if $settings.list_map_show_url_newtarget} target="_blank"{/if}>{$member.url}</a><br>{/if}
                                 {if $member.email && $settings.list_map_show_email}<b>E-Mail Address:</b> <a href="mailto:{$member.email}">{$member.email}</a><br>{/if}
                                 {if $member.region && $settings.list_map_show_region}<b>Region:</b> {$member.region}{/if}
                     {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)}
                         <div>
-                            {if $member.phone && $settings.list_show_phone}<span class="glm-member-db-phone">Phone: {$member.phone} </span>{/if}
-                            {if $member.toll_free && $settings.list_show_tollfree}<span class="glm-member-db-phone-tollfree">{$member.toll_free}</span>{/if}
+                            {if $member.phone && $settings.list_show_phone}<span class="glm-member-db-phone">Phone: {apply_filters('glm_associate_phone_filter', $member.phone)} </span>{/if}
+                            {if $member.toll_free && $settings.list_show_tollfree}<span class="glm-member-db-phone-tollfree">{apply_filters('glm_associate_phone_filter', $member.toll_free)}</span>{/if}
                         </div>
                     {/if}
                     {if $member.region && $settings.list_show_region}<div><b>Region:</b> {$member.region}</div>{/if}
           {/if} {*list_map_show_address*}
             <div class="glm-member-list-info">
                 <p>
-                    {if $member.phone && $settings.list_map_show_phone}<b>Phone:</b> {$member.phone}<br>{/if}
-                    {if $member.toll_free && $settings.list_map_show_tollfree}{$member.toll_free}<br>{/if}
+                    {if $member.phone && $settings.list_map_show_phone}<b>Phone:</b> {apply_filters('glm_associate_phone_filter', $member.phone)}<br>{/if}
+                    {if $member.toll_free && $settings.list_map_show_tollfree}{apply_filters('glm_associate_phone_filter', $member.toll_free)}<br>{/if}
                     {if $member.url && $settings.list_map_show_url}<b>Web site:</b> <a href="{$member.url}"{if $settings.list_map_show_url_newtarget} target="_blank"{/if}>{$member.url}</a><br>{/if}
                     {if $member.email && $settings.list_map_show_email}<b>E-Mail Address:</b> <a href="mailto:{$member.email}">{$member.email}</a><br>{/if}
                     {if $member.region && $settings.list_map_show_region}<b>Region:</b> {$member.region}{/if}