• Hi Guys,

    I’ve been trying to get the phone field to show but have be unsuccessful. Not sure how to display it in the Profile Fields on backend.

    I found this code in the classes folder Bxcft_Field_Type_Phone.php

    `<?php
    /**
    * Phone Number
    * User: brandon
    * Date: 1/22/2016
    * Time: 3:57 PM
    */

    class Bxcft_Field_Type_Phone {

    }

    function formatPhoneNumber($phoneNumber) {
    $phoneNumber = preg_replace(‘/[^0-9]/’,”,$phoneNumber);

    if(strlen($phoneNumber) > 10) {
    $countryCode = substr($phoneNumber, 0, strlen($phoneNumber)-10);
    $areaCode = substr($phoneNumber, -10, 3);
    $nextThree = substr($phoneNumber, -7, 3);
    $lastFour = substr($phoneNumber, -4, 4);

    $phoneNumber = ‘+’.$countryCode.’ (‘.$areaCode.’) ‘.$nextThree.’-‘.$lastFour;
    }
    else if(strlen($phoneNumber) == 10) {
    $areaCode = substr($phoneNumber, 0, 3);
    $nextThree = substr($phoneNumber, 3, 3);
    $lastFour = substr($phoneNumber, 6, 4);

    $phoneNumber = ‘(‘.$areaCode.’) ‘.$nextThree.’-‘.$lastFour;
    }
    else if(strlen($phoneNumber) == 7) {
    $nextThree = substr($phoneNumber, 0, 3);
    $lastFour = substr($phoneNumber, 3, 4);

    $phoneNumber = $nextThree.’-‘.$lastFour;
    }

    return $phoneNumber;
    }

    I also see this in the bp-xprofile-custom-fields-type.php file

    require_once( ‘classes/Bxcft_Field_Type_Birthdate.php’ );
    require_once( ‘classes/Bxcft_Field_Type_Email.php’ );
    require_once( ‘classes/Bxcft_Field_Type_Web.php’ );
    require_once( ‘classes/Bxcft_Field_Type_Datepicker.php’ );
    require_once( ‘classes/Bxcft_Field_Type_SelectCustomPostType.php’ );
    require_once( ‘classes/Bxcft_Field_Type_MultiSelectCustomPostType.php’ );
    require_once( ‘classes/Bxcft_Field_Type_SelectCustomTaxonomy.php’ );
    require_once( ‘classes/Bxcft_Field_Type_MultiSelectCustomTaxonomy.php’ );
    require_once( ‘classes/Bxcft_Field_Type_CheckboxAcceptance.php’ );
    require_once( ‘classes/Bxcft_Field_Type_Image.php’ );
    require_once( ‘classes/Bxcft_Field_Type_File.php’ );
    require_once( ‘classes/Bxcft_Field_Type_Color.php’ );
    require_once( ‘classes/Bxcft_Field_Type_DecimalNumber.php’ );
    require_once( ‘classes/Bxcft_Field_Type_NumberMinMax.php’ );
    require_once( ‘classes/Bxcft_Field_Type_Phone.php’ );

    As well as

    // Phone.
    } elseif ($field->type == ‘phone’) {
    if (strpos($value_to_return, ‘textbox’) === false) {
    $value_to_return = sprintf(‘%s‘,
    $value_to_return,
    $value_to_return);
    }
    }

    https://wordpress.org/plugins/buddypress-xprofile-custom-fields-type/

Viewing 4 replies - 1 through 4 (of 4 total)
  • Plugin Author Miguel López

    (@atallos)

    This code is not from my plugin. Have you added it to my plugin? First I can say

    <?php
    class Bxcft_Field_Type_Phone {

    }

    function formatPhoneNumber($phoneNumber) {`

    You are closing brace after “class Bxcft_Field_Type_Phone {” and all the code is outside so this is wrong.

    Thread Starter blackcrowads

    (@blackcrowads)

    I actually posted code from 2 different parts of the plugin. This is your code from Bxcft_Field_Type_Phone.php

    <?php
    /**
    * Phone Number
    * User: brandon
    * Date: 1/22/2016
    * Time: 3:57 PM
    */

    class Bxcft_Field_Type_Phone {

    }

    function formatPhoneNumber($phoneNumber) {
    $phoneNumber = preg_replace(‘/[^0-9]/’,”,$phoneNumber);

    if(strlen($phoneNumber) > 10) {
    $countryCode = substr($phoneNumber, 0, strlen($phoneNumber)-10);
    $areaCode = substr($phoneNumber, -10, 3);
    $nextThree = substr($phoneNumber, -7, 3);
    $lastFour = substr($phoneNumber, -4, 4);

    $phoneNumber = ‘+’.$countryCode.’ (‘.$areaCode.’) ‘.$nextThree.’-‘.$lastFour;
    }
    else if(strlen($phoneNumber) == 10) {
    $areaCode = substr($phoneNumber, 0, 3);
    $nextThree = substr($phoneNumber, 3, 3);
    $lastFour = substr($phoneNumber, 6, 4);

    $phoneNumber = ‘(‘.$areaCode.’) ‘.$nextThree.’-‘.$lastFour;
    }
    else if(strlen($phoneNumber) == 7) {
    $nextThree = substr($phoneNumber, 0, 3);
    $lastFour = substr($phoneNumber, 3, 4);

    $phoneNumber = $nextThree.’-‘.$lastFour;
    }

    return $phoneNumber;
    }

    Thread Starter blackcrowads

    (@blackcrowads)

    This is another part from the code

    public function bxcft_get_field_types($fields)
    {
    $new_fields = array(
    ‘birthdate’ => ‘Bxcft_Field_Type_Birthdate’,
    ’email’ => ‘Bxcft_Field_Type_Email’,
    ‘web’ => ‘Bxcft_Field_Type_Web’,
    ‘datepicker’ => ‘Bxcft_Field_Type_Datepicker’,
    ‘select_custom_post_type’ => ‘Bxcft_Field_Type_SelectCustomPostType’,
    ‘multiselect_custom_post_type’ => ‘Bxcft_Field_Type_MultiSelectCustomPostType’,
    ‘select_custom_taxonomy’ => ‘Bxcft_Field_Type_SelectCustomTaxonomy’,
    ‘multiselect_custom_taxonomy’ => ‘Bxcft_Field_Type_MultiSelectCustomTaxonomy’,
    ‘checkbox_acceptance’ => ‘Bxcft_Field_Type_CheckboxAcceptance’,
    ‘image’ => ‘Bxcft_Field_Type_Image’,
    ‘file’ => ‘Bxcft_Field_Type_File’,
    ‘color’ => ‘Bxcft_Field_Type_Color’,
    ‘decimal_number’ => ‘Bxcft_Field_Type_DecimalNumber’,
    ‘number_minmax’ => ‘Bxcft_Field_Type_NumberMinMax’,
    ‘phone’ => ‘Bxcft_Field_Type_Phone’,
    );
    $fields = array_merge($fields, $new_fields);

    return $fields;
    }

    public function bxcft_get_field_data($value, $field_id)
    {
    $field = new BP_XProfile_Field($field_id);
    $value_to_return = strip_tags($value);
    if ($value_to_return !== ”) {
    // Birthdate.
    if ($field->type == ‘birthdate’) {
    $show_age = false;
    if ($field) {
    $childs = $field->get_children();
    if (isset($childs) && $childs && count($childs) > 0
    && is_object($childs[0]) && $childs[0]->name == ‘show_age’) {
    $show_age = true;
    }
    }
    if ($show_age) {
    $value_to_return = floor((time() – strtotime($value_to_return))/31556926);
    } else {
    $value_to_return = date_i18n(get_option(‘date_format’) ,strtotime($value_to_return) );
    }
    }
    // Email.
    elseif ($field->type == ’email’) {
    if (strpos($value_to_return, ‘mailto’) === false) {
    $value_to_return = sprintf(‘%s‘,
    $value_to_return,
    $value_to_return);
    }
    // Phone.
    } elseif ($field->type == ‘phone’) {
    if (strpos($value_to_return, ‘textbox’) === false) {
    $value_to_return = sprintf(‘%s‘,
    $value_to_return,
    $value_to_return);
    }
    }

    Plugin Author Miguel López

    (@atallos)

    I’m sorry but this code is not from my plugin. There is no “phone” field in my plugin, so maybe someone added this to my plugin in your website but it’s not from the official plugin. Download it if you want and you will see there is no “phone” field.

Viewing 4 replies - 1 through 4 (of 4 total)
  • The topic ‘Buddypress Xprofile Phone Type Field’ is closed to new replies.