WordPress.org

Plugin Directory

Changeset 1642432


Ignore:
Timestamp:
04/21/17 13:46:48 (7 months ago)
Author:
svenl77
Message:

new version 1.2.3

Location:
woocommerce-buddypress-integration-xprofile-checkout-manager
Files:
17 added
4 edited

Legend:

Unmodified
Added
Removed
  • woocommerce-buddypress-integration-xprofile-checkout-manager/trunk/includes/wc4bp-xprofile-checkout.php

    r1620866 r1642432  
    1414function wc4bp_custom_checkout_field( $checkout ) { 
    1515    global $field; 
    16  
    17     $bf_xprofile_options = get_option( 'bf_xprofile_options' ); 
    18  
    19     if ( ! isset( $bf_xprofile_options ) ) { 
    20         return; 
    21     } 
    22  
    23     if ( ! is_array( $bf_xprofile_options ) ) { 
    24         return; 
    25     } 
    26  
     16     
     17    $bf_xprofile_options = get_option( 'bf_xprofile_options' ); 
     18     
     19    if ( ! isset( $bf_xprofile_options ) ) { 
     20        return; 
     21    } 
     22     
     23    if ( ! is_array( $bf_xprofile_options ) ) { 
     24        return; 
     25    } 
     26     
    2727    $shipping = bp_get_option( 'wc4bp_shipping_address_ids' ); 
    2828    $billing  = bp_get_option( 'wc4bp_billing_address_ids' ); 
    29  
     29     
    3030    foreach ( $bf_xprofile_options as $group_id => $fields ) { 
    31  
     31         
    3232        $group_fields_included = 0; 
    3333        $display_group_name    = true; 
    34  
     34         
    3535        foreach ( $fields as $field_id => $field_attr ) { 
    36  
     36             
    3737            if ( ! apply_filters( 'wc4bp_custom_checkout_field_group_visible', true, $group_id ) ) { 
    3838                continue; 
    3939            } 
    40  
     40             
    4141            if ( ( ! empty( $billing ) && array_search( $field_id, $billing ) ) || ( ! empty( $shipping ) && array_search( $field_id, $shipping ) ) ) { 
    4242                continue; 
    4343            } 
    44  
     44             
    4545            if ( isset( $field_attr['checkout'] ) ) { 
    4646                $field = new BP_XProfile_Field( $field_id ); 
    47  
     47                 
    4848                if ( ! empty( $field->id ) ) { 
    4949                    if ( $group_fields_included == 0 ) { 
     
    7070                    $group_fields_included ++; 
    7171                } 
    72  
    73             } 
    74  
     72                 
     73            } 
     74             
    7575        } 
    7676        if ( $group_fields_included > 0 ) { 
     
    7878        } 
    7979    } 
    80  
     80     
    8181} 
    8282 
     
    120120        return false; 
    121121    } 
    122  
     122     
    123123    // Re-used across multiple groups 
    124124    static $cart = null; 
    125125    static $products_in_cart = null; 
    126126    static $product_categories_in_cart = null; 
    127  
     127     
    128128    $feature_enabled = wc4bp_xprofile_conditional_visibility_enabled( $group_id, 'group' ); 
    129129    if ( ! apply_filters( 'wc4bp_xprofile_conditional_visibility_enabled', $feature_enabled, $group_id, 'group' ) ) { 
    130130        return true; 
    131131    } 
    132  
     132     
    133133    // Check whether the group requires at least one of a particular set of products is in the cart 
    134134    $products_for_visibility = apply_filters( 'wc4bp_xprofile_conditional_visibility_products', 
     
    141141            $products_in_cart = wc4bp_get_all_products_in_cart( $cart ); 
    142142        } 
    143  
     143         
    144144        if ( count( array_intersect( array_keys( $products_in_cart ), $products_for_visibility ) ) > 0 ) { 
    145145            return true; 
    146146        } 
    147147    } 
    148  
     148     
    149149    // Check whether the group requires that at least one product of a particular set of categories is in the cart 
    150150    $categories_for_visibility = apply_filters( 'wc4bp_xprofile_conditional_visibility_categories', 
     
    160160            $product_categories_in_cart = wc4bp_get_categories_for_products( $products_in_cart ); 
    161161        } 
    162  
     162         
    163163        if ( count( array_intersect( array_keys( $product_categories_in_cart ), $categories_for_visibility ) ) > 0 ) { 
    164164            return true; 
    165165        } 
    166166    } 
    167  
     167     
    168168    return false; 
    169169} 
     
    174174function wc4bp_get_all_products_in_cart( $cart ) { 
    175175    $products = array(); 
    176  
     176     
    177177    foreach ( $cart as $cart_item_key => $values ) { 
    178178        if ( isset( $values['data'] ) ) { 
    179179            $product_data = $values['data']; 
    180180            if ( $product_data instanceof WC_Product ) { 
    181                 $products[ $product_data->id ] = $product_data; 
    182             } 
    183         } 
    184     } 
    185  
     181                $products[ $product_data->get_id() ] = $product_data; 
     182            } 
     183        } 
     184    } 
     185     
    186186    return $products; 
    187187} 
     
    192192function wc4bp_get_categories_for_products( $products ) { 
    193193    $categories = array(); 
    194  
     194     
    195195    foreach ( $products as $product_id => $product ) { 
    196196        if ( $product instanceof WC_Product ) { 
    197             $terms = get_the_terms( $product->id, 'product_cat' ); 
     197            $terms = get_the_terms( $product->get_id(), 'product_cat' ); 
    198198            if ( ! empty( $terms ) ) { 
    199199                foreach ( $terms as $term ) { 
     
    205205        } 
    206206    } 
    207  
     207     
    208208    return $categories; 
    209209} 
     
    253253        } 
    254254    } 
    255  
     255     
    256256    return $elements; 
    257257} 
     
    272272 
    273273function wc4bp_custom_checkout_field_process() { 
    274  
    275     $bf_xprofile_options = get_option( 'bf_xprofile_options' ); 
    276  
    277     if ( ! isset( $bf_xprofile_options ) ) { 
    278         return; 
    279     } 
    280  
    281     if ( ! is_array( $bf_xprofile_options ) ) { 
    282         return; 
    283     } 
    284  
     274     
     275    $bf_xprofile_options = get_option( 'bf_xprofile_options' ); 
     276     
     277    if ( ! isset( $bf_xprofile_options ) ) { 
     278        return; 
     279    } 
     280     
     281    if ( ! is_array( $bf_xprofile_options ) ) { 
     282        return; 
     283    } 
     284     
    285285    $shipping = bp_get_option( 'wc4bp_shipping_address_ids' ); 
    286286    $billing  = bp_get_option( 'wc4bp_billing_address_ids' ); 
    287  
     287     
    288288    foreach ( $bf_xprofile_options as $group_id => $fields ) { 
    289  
     289         
    290290        foreach ( $fields as $field_id => $field ) { 
    291  
     291             
    292292            if ( array_search( $field['field_id'], $billing ) || array_search( $field['field_id'], $shipping ) ) { 
    293293                continue; 
    294294            } 
    295  
     295             
    296296            if ( isset( $field['checkout'] ) ) { 
    297  
     297                 
    298298                $field_slug = sanitize_title( 'field_' . $field_id ); 
    299  
     299                 
    300300                if ( $field['field_is_required'] && ! $_POST[ $field_slug ] ) { 
    301301                    wc_add_notice( '<b>' . $field['field_name'] . ' </b>' . __( 'is a required field.' ), 'error' ); 
    302302                } 
    303  
    304             } 
    305  
    306         } 
    307  
    308     } 
    309  
     303                 
     304            } 
     305             
     306        } 
     307         
     308    } 
     309     
    310310} 
    311311 
     
    316316 
    317317function wc4bp_custom_checkout_field_update_user_meta( $user_id ) { 
    318  
    319     $bf_xprofile_options = get_option( 'bf_xprofile_options' ); 
    320  
    321     if ( ! isset( $bf_xprofile_options ) ) { 
    322         return; 
    323     } 
    324  
    325     if ( ! is_array( $bf_xprofile_options ) ) { 
    326         return; 
    327     } 
    328  
     318     
     319    $bf_xprofile_options = get_option( 'bf_xprofile_options' ); 
     320     
     321    if ( ! isset( $bf_xprofile_options ) ) { 
     322        return; 
     323    } 
     324     
     325    if ( ! is_array( $bf_xprofile_options ) ) { 
     326        return; 
     327    } 
     328     
    329329    foreach ( $bf_xprofile_options as $group_id => $fields ) { 
    330  
     330         
    331331        foreach ( $fields as $field_id => $field ) { 
    332  
     332             
    333333            if ( isset( $field['checkout'] ) ) { 
    334  
     334                 
    335335                $field_slug = sanitize_title( 'field_' . $field_id ); 
    336336                //Fix when is array(); 
     
    340340                    $value = $_POST[ $field_slug ]; 
    341341                } 
    342  
     342                 
    343343                if ( $user_id && ! empty( $value ) ) { 
    344344                    update_user_meta( $user_id, $field_slug, $value ); 
    345345                } 
    346  
     346                 
    347347                xprofile_set_field_data( $field_id, $user_id, $value ); 
    348348            } 
    349  
    350         } 
    351  
    352     } 
    353  
     349             
     350        } 
     351         
     352    } 
     353     
    354354} 
    355355 
     
    360360 
    361361function wc4bp_custom_checkout_field_update_order_meta( $order_id ) { 
    362  
    363     $bf_xprofile_options = get_option( 'bf_xprofile_options' ); 
    364  
    365     if ( ! isset( $bf_xprofile_options ) ) { 
    366         return; 
    367     } 
    368  
    369     if ( ! is_array( $bf_xprofile_options ) ) { 
    370         return; 
    371     } 
    372  
     362     
     363    $bf_xprofile_options = get_option( 'bf_xprofile_options' ); 
     364     
     365    if ( ! isset( $bf_xprofile_options ) ) { 
     366        return; 
     367    } 
     368     
     369    if ( ! is_array( $bf_xprofile_options ) ) { 
     370        return; 
     371    } 
     372     
    373373    foreach ( $bf_xprofile_options as $group_id => $fields ) { 
    374  
     374         
    375375        foreach ( $fields as $field_id => $field ) { 
    376  
     376             
    377377            if ( isset( $field['checkout'] ) ) { 
    378  
     378                 
    379379                $field_slug = sanitize_title( 'field_' . $field_id ); 
    380  
     380                 
    381381                if ( ! empty( $_POST[ $field_slug ] ) ) { 
    382382                    if ( ! is_array( $_POST[ $field_slug ] ) ) { 
     
    387387                    update_post_meta( $order_id, $field_slug, $value ); 
    388388                } 
    389  
    390             } 
    391  
    392         } 
    393  
     389                 
     390            } 
     391             
     392        } 
     393         
    394394    } 
    395395} 
     
    401401 
    402402function wc4bp_custom_checkout_field_display_admin_order_meta( $order ) { 
    403  
    404     $bf_xprofile_options = get_option( 'bf_xprofile_options' ); 
    405  
    406     if ( ! isset( $bf_xprofile_options ) ) { 
    407         return; 
    408     } 
    409  
    410     if ( ! is_array( $bf_xprofile_options ) ) { 
    411         return; 
    412     } 
    413  
     403     
     404    $bf_xprofile_options = get_option( 'bf_xprofile_options' ); 
     405     
     406    if ( ! isset( $bf_xprofile_options ) ) { 
     407        return; 
     408    } 
     409     
     410    if ( ! is_array( $bf_xprofile_options ) ) { 
     411        return; 
     412    } 
     413     
    414414    foreach ( $bf_xprofile_options as $group_id => $fields ) { 
    415  
     415         
    416416        foreach ( $fields as $field_id => $field ) { 
    417  
     417             
    418418            if ( isset( $field['checkout'] ) && isset( $field['order_edit'] ) ) { 
    419  
     419                 
    420420                $field_slug = sanitize_title( 'field_' . $field_id ); 
    421421                echo '<p><strong>' . $field['field_name'] . ':</strong> ' . get_post_meta( $order->id, $field_slug, true ) . '</p>'; 
    422  
    423             } 
    424  
    425         } 
    426  
    427     } 
    428  
     422                 
     423            } 
     424             
     425        } 
     426         
     427    } 
     428     
    429429} 
    430430 
     
    436436function wc4bp_checkout_field_order_meta_keys( $keys ) { 
    437437    $bf_xprofile_options = get_option( 'bf_xprofile_options' ); 
    438  
     438     
    439439    if ( ! isset( $bf_xprofile_options ) ) { 
    440440        return $keys; 
    441441    } 
    442  
     442     
    443443    if ( ! is_array( $bf_xprofile_options ) ) { 
    444444        return $keys; 
    445445    } 
    446  
     446     
    447447    foreach ( $bf_xprofile_options as $group_id => $fields ) { 
    448  
     448         
    449449        foreach ( $fields as $field_id => $field ) { 
    450  
     450             
    451451            if ( isset( $field['checkout'] ) && isset( $field['email'] ) ) { 
    452  
     452                 
    453453                $field_slug                   = sanitize_title( 'field_' . $field_id ); 
    454454                $keys[ $field['field_name'] ] = $field_slug; 
    455  
    456             } 
    457  
    458         } 
    459  
    460     } 
    461  
     455                 
     456            } 
     457             
     458        } 
     459         
     460    } 
     461     
    462462    return $keys; 
    463463} 
     
    469469 
    470470function wc4bp_custom_override_checkout_fields( $fields ) { 
    471  
    472     $bf_xprofile_options = get_option( 'bf_xprofile_options' ); 
    473  
     471     
     472    $bf_xprofile_options = get_option( 'bf_xprofile_options' ); 
     473     
    474474    if ( ! isset( $bf_xprofile_options ) ) { 
    475475        return $fields; 
    476476    } 
    477  
     477     
    478478    if ( ! is_array( $bf_xprofile_options ) ) { 
    479479        return $fields; 
    480480    } 
    481  
     481     
    482482    $shipping = bp_get_option( 'wc4bp_shipping_address_ids' ); 
    483483    $billing  = bp_get_option( 'wc4bp_billing_address_ids' ); 
    484  
     484     
    485485    foreach ( $bf_xprofile_options as $group_id => $bf_fields ) { 
    486  
     486         
    487487        foreach ( $bf_fields as $bf_field_id => $bf_field ) { 
    488  
     488             
    489489            if ( isset( $bf_field['hide'] ) ) { 
    490  
     490                 
    491491                if ( array_search( $bf_field_id, $billing ) ) { 
    492492                    $group_name = 'billing'; 
    493493                } 
    494  
     494                 
    495495                if ( array_search( $bf_field_id, $shipping ) ) { 
    496496                    $group_name = 'shipping'; 
    497497                } 
    498  
     498                 
    499499                $field_name = str_replace( " ", "_", $bf_field['field_name'] ); 
    500500                $field_name = sanitize_title( $group_name . '_' . $field_name ); 
    501  
     501                 
    502502                unset( $fields[ $group_name ][ $field_name ] ); 
    503503            } 
    504  
    505         } 
    506  
    507     } 
    508  
     504             
     505        } 
     506         
     507    } 
     508     
    509509    return $fields; 
    510510} 
     
    516516 
    517517function wc4bp_signup_wp_profile_sync( $user_id ) { 
    518  
     518     
    519519    $wc4bp_sync_mail = get_option( 'wc4bp_sync_mail' ); 
    520  
     520     
    521521    if ( empty( $user_id ) ) { 
    522522        return; 
    523523    } 
    524  
     524     
    525525    // get the profile fields 
    526526    $shipping = bp_get_option( 'wc4bp_shipping_address_ids' ); 
    527527    $billing  = bp_get_option( 'wc4bp_billing_address_ids' ); 
    528  
    529     if ( ! empty( $shipping ) ) { 
    530         foreach ( $shipping as $key => $field_id ) { 
    531             wc4bp_Sync::wc4bp_sync_addresses_from_profile( $user_id, $field_id, $_POST[ 'field_' . $field_id ] ); 
    532         } 
    533     } 
    534  
    535     if ( ! empty( $billing ) ) { 
    536         foreach ( $billing as $key => $field_id ) { 
    537             wc4bp_Sync::wc4bp_sync_addresses_from_profile( $user_id, $field_id, $_POST[ 'field_' . $field_id ] ); 
    538         } 
    539     } 
    540  
    541     if ( ! empty( $wc4bp_sync_mail ) && ! empty( $billing ) ) { 
    542         wc4bp_Sync::wc4bp_sync_addresses_from_profile( $user_id, $billing['email'], $_POST['signup_email'] ); 
    543     } 
    544  
     528     
     529    if ( method_exists( 'wc4bp_Sync', 'wc4bp_sync_addresses_from_profile' ) ) { 
     530        if ( ! empty( $shipping ) ) { 
     531            foreach ( $shipping as $key => $field_id ) { 
     532                wc4bp_Sync::wc4bp_sync_addresses_from_profile( $user_id, $field_id, $_POST[ 'field_' . $field_id ] ); 
     533            } 
     534        } 
     535         
     536        if ( ! empty( $billing ) ) { 
     537            foreach ( $billing as $key => $field_id ) { 
     538                wc4bp_Sync::wc4bp_sync_addresses_from_profile( $user_id, $field_id, $_POST[ 'field_' . $field_id ] ); 
     539            } 
     540        } 
     541         
     542         
     543        if ( ! empty( $wc4bp_sync_mail ) && ! empty( $billing ) ) { 
     544            wc4bp_Sync::wc4bp_sync_addresses_from_profile( $user_id, $billing['email'], $_POST['signup_email'] ); 
     545        } 
     546    } 
    545547} 
    546548 
  • woocommerce-buddypress-integration-xprofile-checkout-manager/trunk/includes/wc4bp-xprofile-required.php

    r1620866 r1642432  
    5959    public static function is_woocommerce_active() { 
    6060        self::load_plugins_dependency(); 
     61         
    6162        return is_plugin_active( 'woocommerce/woocommerce.php' ); 
    6263    } 
     
    6465    public static function is_buddypress_active() { 
    6566        self::load_plugins_dependency(); 
     67         
    6668        return is_plugin_active( 'buddypress/bp-loader.php' ); 
    6769    } 
     
    6971    public static function is_wc4bp_active() { 
    7072        self::load_plugins_dependency(); 
    71         return is_plugin_active( 'wc4bp/wc4bp-basic-integration.php' ); 
     73         
     74        return ( is_plugin_active( 'wc4bp-premium/wc4bp-basic-integration.php' ) || is_plugin_active( 'wc4bp/wc4bp-basic-integration.php' ) ); 
    7275    } 
    7376     
    7477    public static function is_current_active() { 
    7578        self::load_plugins_dependency(); 
     79         
    7680        return is_plugin_active( 'wc4bp-xprofile/loader.php' ); 
    7781    } 
    7882     
    7983    public function setup_and_check() { 
     84        $wc4bp_slug = 'wc4bp'; 
     85        if ( isset( $GLOBALS['wc4bp_loader'] ) ) { 
     86            /** @var WC4BP_Loader $wc4bp */ 
     87            $wc4bp = $GLOBALS['wc4bp_loader']; 
     88            if ( $wc4bp::getFreemius()->has_paid_plan() ) { 
     89                $wc4bp_slug = 'wc4bp-premium'; 
     90            } 
     91        } 
    8092        // Create the required required_plugins array 
    8193        $required_plugins = array( 
    8294            array( 
    83                 'name'             => 'BuddyPress', 
    84                 'slug'             => 'buddypress', 
    85                 'version'          => '2.2', 
    86                 'required'         => true, 
     95                'name'     => 'BuddyPress', 
     96                'slug'     => 'buddypress', 
     97                'version'  => '2.2', 
     98                'required' => true, 
    8799            ), 
    88100            array( 
    89                 'name'             => 'WooCommerce', 
    90                 'slug'             => 'woocommerce', 
    91                 'version'          => '2.4', 
    92                 'required'         => true, 
     101                'name'     => 'WooCommerce', 
     102                'slug'     => 'woocommerce', 
     103                'version'  => '2.4', 
     104                'required' => true, 
    93105            ), 
    94106            array( 
    95                 'name'             => 'WC4BP -> WooCommerce BuddyPress Integration', 
    96                 'slug'             => 'wc4bp', 
    97                 'version'          => '2.5', 
    98                 'required'         => true, 
     107                'name'     => 'WC4BP -> WooCommerce BuddyPress Integration', 
     108                'slug'     => $wc4bp_slug, 
     109                'version'  => '2.5', 
     110                'required' => true, 
    99111            ), 
    100112        ); 
  • woocommerce-buddypress-integration-xprofile-checkout-manager/trunk/loader.php

    r1635128 r1642432  
    77 * Author: ThemeKraft 
    88 * Author URI: https://themekraft.com/products/woocommerce-buddypress-integration/ 
    9  * Version:     1.2.2 
     9 * Version:     1.2.3 
    1010 * 
    1111 ***************************************************************************** 
     
    2828 */ 
    2929class WC4BP_xProfile { 
    30  
     30     
    3131    /** 
    3232     * @var string 
    3333     */ 
    34     public $version = '1.2.2'; 
    35  
     34    public $version = '1.2.3'; 
     35     
    3636    /** 
    3737     * Initiate the class 
     
    4141     */ 
    4242    public function __construct() { 
    43  
     43         
    4444        define( 'WC4BP_XPROFILE_VERSION', $this->version ); 
    4545         
     
    4848        new WC4BP_Xprofile_Required(); 
    4949         
    50         if(WC4BP_Xprofile_Required::is_woocommerce_active() && WC4BP_Xprofile_Required::is_buddypress_active() && WC4BP_Xprofile_Required::is_wc4bp_active()) { 
     50        if ( WC4BP_Xprofile_Required::is_woocommerce_active() && WC4BP_Xprofile_Required::is_buddypress_active() && WC4BP_Xprofile_Required::is_wc4bp_active() ) { 
    5151            add_action( 'init', array( $this, 'includes' ), 4, 1 ); 
    5252            add_action( 'init', array( $this, 'load_plugin_textdomain' ), 10, 1 ); 
    5353        } 
    54  
     54         
    5555    } 
    56  
     56     
    5757    public static function plugin_base_url() { 
    5858        return plugin_dir_url( __FILE__ ); 
    5959    } 
    60  
     60     
    6161    /** 
    6262     * Load the language file 
     
    6868        load_plugin_textdomain( 'wc4bp_xprofile', false, dirname( plugin_basename( __FILE__ ) ) . "/languages" ); 
    6969    } 
    70  
     70     
    7171    /** 
    7272     * Include files needed by wc4bp_xprofile 
     
    8181            require_once( plugin_dir_path( __FILE__ ) . 'admin/admin-xprofile-ajax.php' ); 
    8282        } 
    83  
     83         
    8484    } 
    85  
     85     
    8686} 
    8787 
  • woocommerce-buddypress-integration-xprofile-checkout-manager/trunk/readme.txt

    r1635609 r1642432  
    100100 
    101101 
     102= 1.2.3 = 
     103* Refactoring the code. Including the premium version of wc4bp in the requirement check 
     104* Multiple Fixes for WooCommerce 3.0 
     105 
    102106= 1.2.2 = 
    103 Include TGM to check requirements. 
    104 Updating the call to a function from wc4bp to latest version 
    105 Fixing issue with tgma 
     107* Include TGM to check requirements. 
     108* Updating the call to a function from wc4bp to latest version 
     109* Fixing issue with tgma 
    106110 
    107111= 1.2.1 = 
    108 Move has_action in the menue hook. for some reason it was not fired in the latest version. 
     112* Move has_action in the menue hook. for some reason it was not fired in the latest version. 
    109113 
    110114= 1.2 = 
Note: See TracChangeset for help on using the changeset viewer.