function emember_handle_level_cancelled_action($args)
{
    $member_id = $args['member_id'];
    $level = $args['level'];
    //Find record for this user
    eMember_log_debug('emember_membership_cancelled action hook handler. Retrieving membership level record for member ID: ' . $member_id, true);
    $ml_resultset = dbAccess::find(WP_EMEMBER_MEMBERSHIP_LEVEL_TABLE, " id='" . $level . "'");
    $list_name = trim($ml_resultset->campaign_name);
    eMember_log_debug('List name for this membership level: ' . $list_name, true);
    if (!empty($list_name)) {
        //This level has a list name associated so need to do autoresponder cancellation.
        //TODO
    }
}
function eStore_aff_award_commission($payment_data, $cart_items, $customReferrer = '')
{
    eStore_payment_debug('===> Start of Affiliate Commission Calculation <===', true);
    eStore_payment_debug('Checking if the WP Affiliate Platform Plugin is installed.', true);
    if (eStore_affiliate_capability_exists()) {
        global $wpdb;
        $products_table_name = WP_ESTORE_PRODUCTS_TABLE_NAME;
        $affiliates_table_name = WP_AFFILIATE_TABLE_NAME;
        $aff_sales_table = WP_AFFILIATE_SALES_TABLE_NAME;
        eStore_payment_debug('WP Affiliate Platform is installed, checking commission related details...', true);
        $customvariables = get_custom_var($payment_data['custom']);
        if (!empty($customReferrer)) {
            $referrer = $customReferrer;
            eStore_payment_debug('Revenue sharing feature is being used', true);
        } else {
            $referrer = $customvariables['ap_id'];
        }
        // Check affiliate leads table for referrer if enabled
        if (WP_ESTORE_CHECK_LEADS_TABLE_FOR_AFFILIATE_REFERRAL_CHECK === '1') {
            if (function_exists('wp_aff_get_referrer_from_leads_table_for_buyer')) {
                $buyer_email = $payment_data['payer_email'];
                $referrer = wp_aff_get_referrer_from_leads_table_for_buyer($buyer_email);
                eStore_payment_debug('Referrer value returned from the leads table check is:' . $referrer, true);
            } else {
                eStore_payment_debug('You need to update the affiliate plugin to use this feature', false);
            }
        }
        // Check if an eMember user with a referrer has purchased
        $eMember_member_id = $customvariables['eMember_id'];
        if (WP_ESTORE_CHECK_EMEMBER_REFERRER_FOR_AFFILIATE_ID === '1' && !empty($eMember_member_id)) {
            eStore_payment_debug('This purchase was made by a member with eMember ID: ' . $eMember_member_id . ' Looking to see if a referrer value exists in this member profile...', true);
            $eMember_resultset = dbAccess::find(WP_EMEMBER_MEMBERS_TABLE_NAME, ' member_id=' . esc_sql($eMember_member_id));
            $member_referrer = trim($eMember_resultset->referrer);
            eStore_payment_debug('Attached referrer value with this member profile is: ' . $member_referrer, true);
            if (!empty($member_referrer)) {
                $referrer = $member_referrer;
                eStore_payment_debug('Setting the referrer value of this sale to Affiliate ID: ' . $referrer, true);
            }
        }
        if (!empty($referrer)) {
            eStore_payment_debug('The referrer for this sale is:' . $referrer, true);
            $c_id = $customvariables['c_id'];
            //campaign id (if any)
            $txn_id = $payment_data['txn_id'];
            $buyer_email = $payment_data['payer_email'];
            $clientip = $customvariables['ip'];
            eStore_payment_debug('Additional debug data. Txn ID: ' . $txn_id . ' Campign ID: ' . $c_id . ' Buyer Email: ' . $buyer_email, true);
            //Check if no commission is to be awarded for self purchase
            if (WP_ESTORE_NO_COMMISSION_FOR_SELF_PURCHASE == '1') {
                //check if the referrer is the buyer
                if (function_exists('wp_aff_check_if_buyer_is_referrer')) {
                    if (wp_aff_check_if_buyer_is_referrer($referrer, $buyer_email)) {
                        eStore_payment_debug('The buyer (' . $buyer_email . ') is the referrer (' . $referrer . ') so this sale is NOT ELIGIBLE for generating any commission.', true);
                        return true;
                    } else {
                        eStore_payment_debug('The buyer is not the referrer so this sale is eligible for generating commission.', true);
                    }
                } else {
                    eStore_payment_debug('You need to update your affiliate plugin before you can use the No commission on self purchase feature.', false);
                }
            }
            $resultset = $wpdb->get_results("SELECT * FROM {$aff_sales_table} WHERE txn_id = '{$txn_id}'", OBJECT);
            if ($resultset) {
                //Commission for this transaction has already been awarded so no need to do anything.
                eStore_payment_debug('The database record shows that the commission for this transaction has already been awarded so no need to do anything.', true);
                eStore_payment_debug('===> End Affiliate Commission Check <===', true);
                return;
            }
            //Check if the "DO not award commission if coupon is used" feature is in use
            if (get_option('eStore_aff_no_commission_if_coupon_used') != '') {
                $coupon = $customvariables['coupon'];
                if (!empty($coupon)) {
                    eStore_payment_debug('Do Not Award Commission if Coupon Used feature is enabled. Commission will not be awarded for this transaction since a coupon code has been used. Coupon: ' . $coupon, true);
                    eStore_payment_debug('===> End Affiliate Commission Check <===', true);
                    return;
                }
                eStore_payment_debug('No coupon used for this transaction', true);
            }
            $wp_aff_affiliates_db = $wpdb->get_row("SELECT * FROM {$affiliates_table_name} WHERE refid = '{$referrer}'", OBJECT);
            $commission_level = $wp_aff_affiliates_db->commissionlevel;
            $second_tier_referrer = $wp_aff_affiliates_db->referrer;
            $second_tier_commission_level = 0;
            if (!empty($second_tier_referrer)) {
                //This affiliate has a 2nd tier referrer
                eStore_payment_debug('Retrieving the 2nd tier affiliate profile.', true);
                $second_tier_aff = $wpdb->get_row("SELECT * FROM {$affiliates_table_name} WHERE refid = '{$second_tier_referrer}'", OBJECT);
                if (!empty($second_tier_aff->sec_tier_commissionlevel)) {
                    $second_tier_commission_level = $second_tier_aff->sec_tier_commissionlevel;
                    eStore_payment_debug('The 2nd tier affiliate (' . $second_tier_referrer . ') has a profile specific 2nd tier commission level. Commission level is: ' . $second_tier_commission_level, true);
                } else {
                    $second_tier_commission_level = get_option('wp_aff_2nd_tier_commission_level');
                }
            }
            $counter = 1;
            $commission_amount = 0;
            $product_comm_amount = 0;
            $second_tier_commission_amount = 0;
            $purchased_items = '';
            global $eStore_affiliate_individual_product_commisions;
            foreach ($cart_items as $current_cart_item) {
                eStore_payment_debug('Processing Commission for : ' . $current_cart_item['item_name'], true);
                $cart_item_number = $current_cart_item['item_number'];
                //The total item price includes the (individual item price * quantity)
                $total_item_price = $current_cart_item['mc_gross'] - $current_cart_item['mc_shipping'];
                $item_qty = $current_cart_item['quantity'];
                eStore_payment_debug('Total Price of the currently processing item : ' . $total_item_price, true);
                $retrieved_product = $wpdb->get_row("SELECT * FROM {$products_table_name} WHERE id = '{$cart_item_number}'", OBJECT);
                if (!empty($retrieved_product->commission)) {
                    eStore_payment_debug('Using product specific commission specified in eStore', true);
                    if (get_option('wp_aff_use_fixed_commission')) {
                        eStore_payment_debug('Using fixed commission rate for this product specific commission', true);
                        //Give fixed commission from the product's specified level
                        $product_comm_amount = $item_qty * $retrieved_product->commission;
                        //Award fixed commission for 2nd tier from the product's specified level
                        if (!empty($retrieved_product->tier2_commission)) {
                            $product_second_tier_comm_amt = $item_qty * $retrieved_product->tier2_commission;
                        }
                    } else {
                        eStore_payment_debug('Using % based commission rate for this product specific commission', true);
                        //Award % commission from the product's specified level
                        //The total item price includes the (individual item price * quantity)
                        $product_comm_amount = $total_item_price * $retrieved_product->commission / 100;
                        //Award % commission for 2nd tier from the product's specified level
                        if (!empty($retrieved_product->tier2_commission)) {
                            $product_second_tier_comm_amt = $total_item_price * $retrieved_product->tier2_commission / 100;
                        }
                    }
                } else {
                    if ($retrieved_product->commission == "0") {
                        $product_comm_amount = 0;
                        $product_second_tier_comm_amt = 0;
                        eStore_payment_debug('This product will not generate any commission as the product specific commission for this product has been specified as 0', true);
                    } else {
                        eStore_payment_debug('Using commission rate from affiliate profile', true);
                        if (get_option('wp_aff_use_fixed_commission')) {
                            eStore_payment_debug('Using fixed commission rate for this commission. Qty:' . $item_qty . ', Fixed commission level:' . $commission_level, true);
                            //Give fixed commission from the affiliate's specified level
                            $product_comm_amount = $item_qty * $commission_level;
                            //Award fixed commission for 2nd tier from the affiliate's specified level
                            $product_second_tier_comm_amt = $item_qty * $second_tier_commission_level;
                        } else {
                            eStore_payment_debug('Using % based commission rate for this commission. Qty:' . $item_qty . ', Total price:' . $total_item_price . ', Commission level:' . $commission_level, true);
                            //The total item price includes the (individual item price * quantity)
                            $product_comm_amount = $total_item_price * ($commission_level / 100);
                            //Award fixed commission for 2nd tier from the affiliate's specified level
                            $product_second_tier_comm_amt = $total_item_price * ($second_tier_commission_level / 100);
                        }
                    }
                }
                $commission_amount = $commission_amount + $product_comm_amount;
                $second_tier_commission_amount = $second_tier_commission_amount + $product_second_tier_comm_amt;
                //Save the individual product commission details for later use
                $current_cart_item['product_commission'] = $product_comm_amount;
                $current_cart_item['product_commission_2nd_tier'] = $product_second_tier_comm_amt;
                $current_cart_item['product_commission_total'] = $product_comm_amount + $product_second_tier_comm_amt;
                array_push($eStore_affiliate_individual_product_commisions, $current_cart_item);
                if ($counter > 1) {
                    $purchased_items .= ", ";
                }
                $purchased_items .= $cart_item_number;
                $counter++;
            }
            $commission_amount = round($commission_amount, 2);
            $second_tier_commission_amount = round($second_tier_commission_amount, 2);
            $sale_amount = $payment_data['mc_gross'];
            $clientdate = date("Y-m-d");
            $clienttime = date("H:i:s");
            $txn_id = $payment_data['txn_id'];
            $item_id = $purchased_items;
            $buyer_name = $payment_data['first_name'] . " " . $payment_data['last_name'];
            $aff_version = get_option('wp_aff_platform_version');
            //Check if using the satellite affiliate plugin is being used then direct commision there
            if (defined('SATELLITE_WP_AFFILIATE_PLATFORM_VERSION')) {
                //WP_ESTORE_REDIRECT_COMMISSION_USING_SATELLITE_AFFILIATE_PLUGIN
                eStore_payment_debug('Satellite affiliate plugin is installed. Redirecting commission using the satellite affiliate plugin.', true);
                if (function_exists('satellite_aff_perform_remote_sale_tracking_eStore')) {
                    eStore_payment_debug('Redirecting commission using the direct commission awarding method. Commission amount: ' . $commission_amount, true);
                    satellite_aff_perform_remote_sale_tracking_eStore($commission_amount, $sale_amount, $referrer, $txn_id, $item_id, $buyer_email, $clientip, $buyer_name);
                } else {
                    if (function_exists('satellite_aff_perform_remote_sale_tracking')) {
                        satellite_aff_perform_remote_sale_tracking($sale_amount, $referrer, $txn_id, '', $buyer_email, $clientip);
                    }
                }
                return true;
            }
            eStore_payment_debug("WP Affiliate plugin version is: " . $aff_version, true);
            // Check if the commission per transaction option is enabled
            if (get_option('eStore_aff_enable_commission_per_transaction') != '') {
                eStore_payment_debug('Commission per transaction option is enabled so the commission will be awarded for the full transaction rather than on a per item basis', true);
                if (get_option('wp_aff_use_fixed_commission')) {
                    eStore_payment_debug('Using fixed commission model... Awarding fixed affiliate commission', true);
                    $updatedb = "INSERT INTO {$aff_sales_table} (refid,date,time,browser,ipaddress,payment,sale_amount,txn_id,item_id,buyer_email,campaign_id,buyer_name) VALUES ('{$referrer}','{$clientdate}','{$clienttime}','','{$clientip}','{$commission_amount}','{$sale_amount}','{$txn_id}','{$item_id}','{$buyer_email}','{$c_id}','{$buyer_name}')";
                    $results = $wpdb->query($updatedb);
                    eStore_payment_debug('===> End Affiliate Commission Check <===', true);
                    return;
                } else {
                    //For percentage based commission there is no difference between per transaction commission amount and the per item commission amount
                }
            }
            //% based commission
            $updatedb = "INSERT INTO {$aff_sales_table} (refid,date,time,browser,ipaddress,payment,sale_amount,txn_id,item_id,buyer_email,campaign_id,buyer_name) VALUES ('{$referrer}','{$clientdate}','{$clienttime}','','{$clientip}','{$commission_amount}','{$sale_amount}','{$txn_id}','{$item_id}','{$buyer_email}','{$c_id}','{$buyer_name}')";
            $results = $wpdb->query($updatedb);
            //Send commission notification email if enabled
            if (function_exists('wp_aff_send_commission_notification')) {
                if ($commission_amount > 0) {
                    eStore_payment_debug("Sending commission email notification request to the affiliate plugin", true);
                    wp_aff_send_commission_notification($wp_aff_affiliates_db->email, $txn_id);
                    eStore_payment_debug("Commission email notification request sending complete.", true);
                } else {
                    eStore_payment_debug("The commission amount is 0. No need to notify the affiliate", true);
                }
            }
            $message = 'The sale has been registered in the WP Affiliate Platform Database for referrer: ' . $referrer . ' with amount: ' . $commission_amount;
            eStore_payment_debug($message, true);
            //2nd tier affiliate commission
            eStore_payment_debug('Awarding 2nd tier commission if applicable', true);
            //$result = wp_aff_award_second_tier_commission($wp_aff_affiliates_db,$sale_amount,$txn_id,$item_id,$buyer_email);
            if (get_option('wp_aff_use_2tier') && !empty($wp_aff_affiliates_db->referrer)) {
                $award_tier_commission = true;
                $duration = get_option('wp_aff_2nd_tier_duration');
                if (!empty($duration)) {
                    $join_date = $wp_aff_affiliates_db->date;
                    $days_since_joined = round((strtotime(date("Y-m-d")) - strtotime($join_date)) / (60 * 60 * 24));
                    if ($days_since_joined > $duration) {
                        eStore_payment_debug('Tier commission award duration expried', true);
                        $award_tier_commission = false;
                    }
                }
                if ($award_tier_commission) {
                    $updatedb = "INSERT INTO {$aff_sales_table} (refid,date,time,browser,ipaddress,payment,sale_amount,txn_id,item_id,buyer_email) VALUES ('{$wp_aff_affiliates_db->referrer}','{$clientdate}','{$clienttime}','','','{$second_tier_commission_amount}','{$sale_amount}','{$txn_id}','{$item_id}','{$buyer_email}')";
                    //$updatedb = "INSERT INTO $aff_sales_table VALUES ('$wp_aff_affiliates_db->referrer','$clientdate','$clienttime','','','$second_tier_commission_amount','$sale_amount','$txn_id','$item_id','$buyer_email')";
                    $results = $wpdb->query($updatedb);
                    eStore_payment_debug('Tier commission awarded to: ' . $wp_aff_affiliates_db->referrer . '. Commission amount: ' . $second_tier_commission_amount, true);
                }
            }
            eStore_payment_debug('End of tier commission check', true);
        } else {
            eStore_payment_debug('No Referrer Found. This is not an affiliate referred sale.', true);
        }
    } else {
        eStore_payment_debug('WP Affiliate Platform capability is not present.', true);
    }
    eStore_payment_debug('===> End Affiliate Commission Check <===', true);
}
Example #3
0
function emember_update_membership_level($member_id, $target_membership_level)
{
    $emember_auth = Emember_Auth::getInstance();
    $emember_config = Emember_Config::getInstance();
    global $wpdb;
    $resultset = dbAccess::find(WP_EMEMBER_MEMBERS_TABLE_NAME, ' member_id=' . esc_sql($member_id));
    $target_level_info = dbAccess::find(WP_EMEMBER_MEMBERSHIP_LEVEL_TABLE, ' id=' . esc_sql($target_membership_level));
    if ($resultset->membership_level != $target_membership_level) {
        if ($emember_config->getValue('eMember_enable_secondary_membership')) {
            $additional_levels = $resultset->more_membership_levels;
            $active_membership_level = $resultset->membership_level;
            $additional_levels = array_filter(explode(',', $additional_levels));
            $additional_levels[] = $active_membership_level;
            $additional_levels = array_unique($additional_levels);
            $additional_levels = implode(',', $additional_levels);
            $level_info['membership_level'] = trim($target_membership_level);
            $level_info['more_membership_levels'] = $additional_levels;
        } else {
            $level_info['membership_level'] = trim($target_membership_level);
        }
        dbAccess::update(WP_EMEMBER_MEMBERS_TABLE_NAME, 'member_id=' . $member_id, $level_info);
    }
    emember_update_wp_role_for_member($resultset->user_name, $target_level_info->role);
}
function content_protection()
{
    if (isset($_POST['submit'])) {
        $ids = array();
        $debookmarked = array();
        $fields = array();
        $page_ids = $_POST['item_id'];
        if (isset($_POST['checked']) && count($_POST['checked'])) {
            foreach ($_POST['checked'] as $id => $value) {
                array_push($ids, $id);
            }
        }
        if (isset($_POST['bookmark']) && count($_POST['bookmark'])) {
            foreach ($_POST['bookmark'] as $id => $value) {
                array_push($debookmarked, $id);
            }
        }
        $level = dbAccess::find(WP_EMEMBER_MEMBERSHIP_LEVEL_TABLE, ' id = ' . $_POST['wpm_content_level'], ' id DESC ');
        switch ($_POST['content_type']) {
            case 'posts':
                $old_ids = (array) unserialize($level->post_list);
                $ids = emember_adjust_list($ids, $page_ids, $old_ids);
                $ids = serialize($ids);
                $fields = array('post_list' => $ids);
                $current_bookmarks = (array) unserialize($level->disable_bookmark_list);
                if (!is_bool($current_bookmarks)) {
                    $oldmarks = empty($current_bookmarks['posts']) ? array() : $current_bookmarks['posts'];
                    $debookmarked = emember_adjust_list($debookmarked, $page_ids, $oldmarks);
                }
                $current_bookmarks['posts'] = $debookmarked;
                $debookmarked = serialize($current_bookmarks);
                $fields['disable_bookmark_list'] = $debookmarked;
                break;
            case 'pages':
                $old_ids = (array) unserialize($level->page_list);
                $ids = emember_adjust_list($ids, $page_ids, $old_ids);
                $ids = serialize($ids);
                $fields = array('page_list' => $ids);
                $current_bookmarks = (array) unserialize($level->disable_bookmark_list);
                if (!is_bool($current_bookmarks)) {
                    $oldmarks = empty($current_bookmarks['pages']) ? array() : $current_bookmarks['pages'];
                    $debookmarked = emember_adjust_list($debookmarked, $page_ids, $oldmarks);
                }
                $current_bookmarks['pages'] = $debookmarked;
                $debookmarked = serialize($current_bookmarks);
                $fields['disable_bookmark_list'] = $debookmarked;
                break;
            case 'comments':
                $old_ids = (array) unserialize($level->comment_list);
                $ids = emember_adjust_list($ids, $page_ids, $old_ids);
                $ids = serialize($ids);
                $fields = array('comment_list' => $ids);
                break;
            case 'categories':
                $old_ids = (array) unserialize($level->category_list);
                $ids = emember_adjust_list($ids, $page_ids, $old_ids);
                $ids = serialize($ids);
                $fields = array('category_list' => $ids);
                break;
            case 'attachments':
                $old_ids = (array) unserialize($level->attachment_list);
                $ids = emember_adjust_list($ids, $page_ids, $old_ids);
                $ids = serialize($ids);
                $fields = array('attachment_list' => $ids);
                break;
            case 'custom-posts':
                $old_ids = (array) unserialize($level->custom_post_list);
                $ids = emember_adjust_list($ids, $page_ids, $old_ids);
                $ids = serialize($ids);
                $fields = array('custom_post_list' => $ids);
                break;
            default:
                break;
        }
        $ret = dbAccess::update(WP_EMEMBER_MEMBERSHIP_LEVEL_TABLE, ' id = ' . $_POST['wpm_content_level'], $fields);
        if ($ret === false) {
            echo '<div id="message" style="color:red;" class="updated fade"><p>Failed to update.</p></div>';
        } else {
            if ($ret === 0) {
                echo '<div id="message" style="color:red;" class="updated fade"><p>Nothing to update.</p></div>';
            } else {
                echo '<div id="message" class="updated fade"><p>Info Updated.</p></div>';
            }
        }
    }
    $levels = dbAccess::findAll(WP_EMEMBER_MEMBERSHIP_LEVEL_TABLE, ' id != 1 ', ' id DESC ');
    include_once 'views/content_protection_view.php';
}
Example #5
0
$referee_data = array();
if ($referee_custom_fields) {
    $referee_data = unserialize($referee_custom_fields->meta_value);
    $referee_data['Good_Karma_Referrer'] = $referrer_email;
    //reference to Good Karma Referrer
    $wpdb->query('UPDATE ' . WP_EMEMBER_MEMBERS_META_TABLE . ' SET meta_value =' . '\'' . serialize($referee_data) . '\' WHERE meta_key = \'custom_field\' AND  user_id=' . $referee_id);
    eMember_log_debug('Referee Member data has been updated', true);
} else {
    $referee_data['Good_Karma_Referrer'] = $referrer_email;
    //reference to Good Karma Referrer
    $referee_data['Good_Karma_Referrals'] = '';
    $wpdb->query("INSERT INTO " . WP_EMEMBER_MEMBERS_META_TABLE . '( user_id, meta_key, meta_value ) VALUES(' . $referee_id . ',"custom_field",' . '\'' . serialize($referee_data) . '\')');
    eMember_log_debug('Referee Member data has been inserted', true);
}
// Update the Referrer Member
$referrer_custom_fields = dbAccess::find(WP_EMEMBER_MEMBERS_META_TABLE, ' user_id=\'' . $referrer_id . '\' AND meta_key=\'custom_field\'');
$referrer_data = array();
if ($referrer_custom_fields) {
    $referrer_data = unserialize($referrer_custom_fields->meta_value);
    $referrer_data['Good_Karma_Referrals'] .= ($referrer_data['Good_Karma_Referrals'] != '' ? ', ' : '') . $referee_email;
    //reference to Good Karma Referee
    $wpdb->query('UPDATE ' . WP_EMEMBER_MEMBERS_META_TABLE . ' SET meta_value =' . '\'' . serialize($referrer_data) . '\' WHERE meta_key = \'custom_field\' AND  user_id=' . $referrer_id);
    eMember_log_debug('Referrer Member data has been updated', true);
} else {
    $referrer_data['Good_Karma_Referrer'] = '';
    $referrer_data['Good_Karma_Referrals'] = $referee_email;
    //reference to Good Karma Referee;
    $wpdb->query("INSERT INTO " . WP_EMEMBER_MEMBERS_META_TABLE . '( user_id, meta_key, meta_value ) VALUES(' . $referrer_id . ',"custom_field",' . '\'' . serialize($referrer_data) . '\')');
    eMember_log_debug('Referrer Member data has been inserted', true);
}
echo "Success!\n";
Example #6
0
function wp_eMember_add_memebers()
{
    $emember_config = Emember_Config::getInstance();
    global $wpdb;
    $d = WP_EMEMBER_URL . '/images/default_image.gif';
    //If being edited, grab current info
    if (isset($_GET['editrecord']) && $_GET['editrecord'] != '') {
        $theid = $_GET['editrecord'];
        $editingrecord = dbAccess::find(WP_EMEMBER_MEMBERS_TABLE_NAME, ' member_id=' . $theid);
        $edit_custom_fields = dbAccess::find(WP_EMEMBER_MEMBERS_META_TABLE, ' user_id=' . $theid . ' AND meta_key="custom_field"');
        $edit_custom_fields = isset($edit_custom_fields->meta_value) ? unserialize($edit_custom_fields->meta_value) : array();
        $editingrecord->more_membership_levels = explode(',', $editingrecord->more_membership_levels);
        $editingrecord = (array) $editingrecord;
        $image_url = null;
        $image_path = null;
        $upload_dir = wp_upload_dir();
        $upload_url = $upload_dir['baseurl'] . '/emember/';
        $upload_path = $upload_dir['basedir'] . '/emember/';
        $use_gravatar = $emember_config->getValue('eMember_use_gravatar');
        if ($use_gravatar) {
            $image_url = WP_EMEMBER_GRAVATAR_URL . "/" . md5(strtolower($editingrecord['email'])) . "?d=" . urlencode($d) . "&s=" . 96;
        } else {
            if (!empty($editingrecord['profile_image'])) {
                $image_url = $upload_url . $editingrecord['profile_image'];
                $image_path = $theid;
            } else {
                $image_path = "";
                $image_url = WP_EMEMBER_URL . '/images/default_image.gif';
            }
        }
    }
    if (isset($_POST['Submit'])) {
        global $wpdb;
        include_once ABSPATH . WPINC . '/class-phpass.php';
        $wp_hasher = new PasswordHash(8, TRUE);
        $post_editedrecord = esc_sql(isset($_POST['editedrecord']) ? $_POST['editedrecord'] : "");
        $fields = array();
        $fields['flags'] = 0;
        if ($emember_config->getValue('eMember_enable_secondary_membership')) {
            $fields['more_membership_levels'] = implode(',', empty($_POST['more_membership_levels']) ? array() : $_POST['more_membership_levels']);
        }
        $fields["user_name"] = $_POST["user_name"];
        $fields["first_name"] = $_POST["first_name"];
        $fields["last_name"] = $_POST["last_name"];
        $fields["company_name"] = $_POST["company_name"];
        $fields["member_since"] = $_POST["member_since"];
        $fields["membership_level"] = $_POST["membership_level"];
        $fields["account_state"] = $_POST["account_state"];
        $fields["email"] = $_POST["email"];
        $fields["phone"] = $_POST["phone"];
        $fields["address_street"] = $_POST["address_street"];
        $fields["address_city"] = $_POST["address_city"];
        $fields["address_state"] = $_POST["address_state"];
        $fields["address_zipcode"] = $_POST["address_zipcode"];
        $fields["home_page"] = $_POST["home_page"];
        $fields["country"] = $_POST["country"];
        $fields["gender"] = $_POST["gender"];
        $fields["referrer"] = $_POST["referrer"];
        $fields["subscription_starts"] = $_POST["subscription_starts"];
        $fields['last_accessed_from_ip'] = get_real_ip_addr();
        $fields["notes"] = $_POST['notes'];
        $wp_user_info = array();
        $wp_user_info['user_nicename'] = implode('-', explode(' ', $_POST['user_name']));
        $wp_user_info['display_name'] = $_POST['user_name'];
        $wp_user_info['user_email'] = $_POST['email'];
        $wp_user_info['nickname'] = $_POST['user_name'];
        $wp_user_info['first_name'] = $_POST['first_name'];
        $wp_user_info['last_name'] = $_POST['last_name'];
        if ($post_editedrecord == '') {
            $fields['user_name'] = esc_sql($_POST['user_name']);
            $wp_user_info['user_login'] = $_POST['user_name'];
            // Add the record to the DB
            include_once 'emember_validator.php';
            $validator = new Emember_Validator();
            $validator->add(array('value' => $fields['user_name'], 'label' => 'User Name', 'rules' => array('user_required', 'user_name', 'user_unavail', 'user_minlength')));
            $validator->add(array('value' => $_POST['password'], 'repeat' => $_POST['retype_password'], 'label' => 'Password', 'rules' => array('pass_required', 'pass_mismatch')));
            $validator->add(array('value' => $fields['email'], 'label' => 'Email', 'rules' => array('email_required', 'email_unavail')));
            $messages = $validator->validate();
            if (count($messages) > 0) {
                echo '<span class="emember_error">' . implode('<br/>', $messages) . '</span>';
                $editingrecord = $_POST;
            } else {
                $password = $wp_hasher->HashPassword($_POST['password']);
                $fields['password'] = esc_sql($password);
                $ret = dbAccess::insert(WP_EMEMBER_MEMBERS_TABLE_NAME, $fields);
                $lastid = $wpdb->insert_id;
                $should_create_wp_user = $emember_config->getValue('eMember_create_wp_user');
                if ($should_create_wp_user) {
                    $role_names = array(1 => 'Administrator', 2 => 'Editor', 3 => 'Author', 4 => 'Contributor', 5 => 'Subscriber');
                    $membership_level_resultset = dbAccess::find(WP_EMEMBER_MEMBERSHIP_LEVEL_TABLE, " id='" . $fields['membership_level'] . "'");
                    $wp_user_info['role'] = $membership_level_resultset->role;
                    $wp_user_info['user_registered'] = date('Y-m-d H:i:s');
                    //$wp_user_id = wp_create_user($_POST['user_name'], $_POST['password'], $_POST['email']);
                    $wp_user_id = eMember_wp_create_user($_POST['user_name'], $_POST['password'], $_POST['email'], $wp_user_info);
                    //do_action( 'set_user_role', $wp_user_id, $membership_level_resultset->role );
                }
                ///custom field insert
                if (isset($_POST['emember_custom'])) {
                    $wpdb->query("INSERT INTO " . WP_EMEMBER_MEMBERS_META_TABLE . '( user_id, meta_key, meta_value ) VALUES(' . $lastid . ',"custom_field",' . '\'' . addslashes(serialize($_POST['emember_custom'])) . '\')');
                }
                if ($ret === false) {
                    $_SESSION['flash_message'] = '<div id="message" style = "color:red;" class="updated fade"><p>Couldn\'t create new member.</p></div>';
                } else {
                    if (isset($_POST['uploaded_profile_img'])) {
                        $upload_dir = wp_upload_dir();
                        $upload_path = $upload_dir['basedir'];
                        $upload_path .= '/emember/';
                        $ext = explode('.', $_POST['uploaded_profile_img']);
                        rename($upload_path . $_POST['uploaded_profile_img'], $upload_path . $lastid . '.' . $ext[1]);
                    }
                    $_SESSION['flash_message'] = '<div id="message" class="updated fade"><p>Member &quot;' . $fields['user_name'] . '&quot; created.</p></div>';
                    //Notify the newly created member if specified in the settings
                    if ($emember_config->getValue('eMember_email_notification_for_manual_member_add')) {
                        $login_link = $emember_config->getValue('login_page_url');
                        $member_email_address = $_POST['email'];
                        $subject_rego_complete = $emember_config->getValue('eMember_email_subject_rego_complete');
                        $body_rego_complete = $emember_config->getValue('eMember_email_body_rego_complete');
                        $from_address = $emember_config->getValue('senders_email_address');
                        $headers = 'From: ' . $from_address . "\r\n";
                        $curr_member_id = $lastid;
                        $additional_params = array('password' => $_POST['password'], 'login_link' => $login_link);
                        $email_body1 = emember_dynamically_replace_member_details_in_message($curr_member_id, $body_rego_complete, $additional_params);
                        wp_mail($member_email_address, $subject_rego_complete, $email_body1, $headers);
                    }
                    //Create the corresponding affliate account if specified in the settings
                    if ($emember_config->getValue('eMember_auto_affiliate_account')) {
                        eMember_handle_affiliate_signup($_POST['user_name'], $_POST['password'], $_POST['first_name'], $_POST['last_name'], $_POST['email'], '');
                    }
                    /*                         * * Signup the member to Autoresponder List (Autoresponder integration) ** */
                    eMember_log_debug("===> Performing autoresponder signup if needed (member was added via admin dashboard) <===", true);
                    $membership_level_id = $_POST["membership_level"];
                    $firstname = $_POST['first_name'];
                    $lastname = $_POST['last_name'];
                    $emailaddress = $_POST['email'];
                    eMember_level_specific_autoresponder_signup($membership_level_id, $firstname, $lastname, $emailaddress);
                    eMember_global_autoresponder_signup($firstname, $lastname, $emailaddress);
                    /*                         * * end of autoresponder integration ** */
                    echo '<script type="text/javascript">window.location = "admin.php?page=wp_eMember_manage";</script>';
                }
            }
        } else {
            if (isset($_POST['emember_custom'])) {
                $custom_fields = dbAccess::find(WP_EMEMBER_MEMBERS_META_TABLE, ' user_id=' . $post_editedrecord . ' AND meta_key=\'custom_field\'');
                if ($custom_fields) {
                    $wpdb->query('UPDATE ' . WP_EMEMBER_MEMBERS_META_TABLE . ' SET meta_value =' . '\'' . addslashes(serialize($_POST['emember_custom'])) . '\' WHERE meta_key = \'custom_field\' AND  user_id=' . $post_editedrecord);
                } else {
                    $wpdb->query("INSERT INTO " . WP_EMEMBER_MEMBERS_META_TABLE . '( user_id, meta_key, meta_value ) VALUES(' . $post_editedrecord . ',"custom_field",' . '\'' . addslashes(serialize($_POST['emember_custom'])) . '\')');
                }
            } else {
                $wpdb->query('DELETE FROM ' . WP_EMEMBER_MEMBERS_META_TABLE . '  WHERE meta_key = \'custom_field\' AND  user_id=' . $post_editedrecord);
            }
            $editingrecord = dbAccess::find(WP_EMEMBER_MEMBERS_TABLE_NAME, ' member_id=' . $post_editedrecord);
            // Update the member info
            $member_id = esc_sql($_POST['editedrecord']);
            $wp_user_id = username_exists($fields['user_name']);
            $wp_email_owner = email_exists($fields['email']);
            $emember_email_owner = emember_email_exists($fields['email']);
            if (empty($fields['user_name']) || $fields['user_name'] != $editingrecord->user_name) {
                echo '<div id="message" class="updated fade"><p>User Name Cannot Be Changed!</p></div>';
            } else {
                if (empty($fields['email'])) {
                    echo '<div id="message" class="updated fade"><p>Email Field is Empty!</p></div>';
                } else {
                    if ($wp_email_owner && $wp_user_id != $wp_email_owner || $emember_email_owner && $member_id != $emember_email_owner) {
                        echo '<div id="message" class="updated fade"><p>Email ID &quot;' . $fields['email'] . '&quot; is already registered to a user!</p></div>';
                    } else {
                        $update_possible = true;
                        if (!empty($_POST['password'])) {
                            if ($_POST['password'] === $_POST['retype_password']) {
                                $password = $wp_hasher->HashPassword($_POST['password']);
                                $fields['password'] = esc_sql($password);
                                $wp_user_info['user_pass'] = $_POST['password'];
                            } else {
                                $update_possible = false;
                                echo '<div id="message" class="updated fade"><p>Password does\'t match!</p></div>';
                            }
                        }
                        if ($update_possible) {
                            $ret = dbAccess::update(WP_EMEMBER_MEMBERS_TABLE_NAME, 'member_id = ' . $member_id, $fields);
                            if ($fields["membership_level"] != $editingrecord->membership_level) {
                                do_action('emember_membership_changed', array('member_id' => $editingrecord->member_id, 'from_level' => $editingrecord->membership_level, 'to_level' => $fields["membership_level"]));
                            }
                            if ($wp_user_id && !is_wp_error($wp_user_id)) {
                                $wp_user_info['ID'] = $wp_user_id;
                                wp_update_user($wp_user_info);
                                if (($editingrecord->flags & 1) != 1) {
                                    $cond = " id='" . $fields['membership_level'] . "'";
                                    $membership_level_resultset = dbAccess::find(WP_EMEMBER_MEMBERSHIP_LEVEL_TABLE, $cond);
                                    update_wp_user_Role($wp_user_id, $membership_level_resultset->role);
                                    //do_action( 'set_user_role', $wp_user_id, $membership_level_resultset->role );
                                }
                            }
                            if ($ret === false) {
                                $_SESSION['flash_message'] = '<div id="message" class="updated fade"><p>' . __('Member', 'wp_eMember') . ' &quot;' . $fields['user_name'] . '&quot; ' . __('Update Failed.', 'wp_eMember') . '</p></div>';
                            } else {
                                $_SESSION['flash_message'] = '<div id="message" class="updated fade"><p>' . __('Member', 'wp_eMember') . ' &quot;' . $fields['user_name'] . '&quot; ' . __('updated.', 'wp_eMember') . '</p></div>';
                                if (isset($_POST['account_status_change'])) {
                                    $from_address = $emember_config->getValue('senders_email_address');
                                    $headers = 'From: ' . $from_address . "\r\n";
                                    $subject = $_POST['notificationmailhead'];
                                    $member_email_address = $_POST['email'];
                                    $login_link = $emember_config->getValue('login_page_url');
                                    $additional_params = array('password' => $_POST['password'], 'login_link' => $login_link);
                                    $curr_member_id = $post_editedrecord;
                                    $email_body = emember_dynamically_replace_member_details_in_message($curr_member_id, $_POST['notificationmailbody'], $additional_params);
                                    wp_mail($member_email_address, $subject, $email_body, $headers);
                                    $emember_config->setValue('eMember_status_change_email_body', $_POST['notificationmailbody']);
                                    $emember_config->setValue('eMember_status_change_email_subject', $_POST['notificationmailhead']);
                                    $emember_config->saveConfig();
                                }
                                echo '<script type="text/javascript">window.location = "admin.php?page=wp_eMember_manage";</script>';
                            }
                        }
                    }
                }
            }
            $editingrecord = (array) $editingrecord;
        }
    }
    $all_levels = dbAccess::findAll(WP_EMEMBER_MEMBERSHIP_LEVEL_TABLE, ' id != 1 ', ' id DESC ');
    include_once 'views/add_member_view.php';
}
function eMember_reg_form($error = null, $level = 0)
{
    global $wpdb;
    $emember_config = Emember_Config::getInstance();
    //Check if the email field should be read only
    $readonlyemail = '';
    $eMember_free_members_must_confirm_email = $emember_config->getValue('eMember_free_members_must_confirm_email');
    if ($eMember_free_members_must_confirm_email && !empty($_POST['wp_emember_email'])) {
        //Check and see if this is a rego complete for free level
        $membership_level_name = $_POST['wp_emember_member_level'];
        $level_resultset = dbAccess::find(WP_EMEMBER_MEMBERSHIP_LEVEL_TABLE, " alias='" . $membership_level_name . "'");
        $free_member_level = $emember_config->getValue('eMember_free_membership_level_id');
        if ($level_resultset->id == $free_member_level) {
            $readonlyemail = 'readonly="readonly"';
        }
    }
    //Recaptcha
    $publickey = $emember_config->getValue('emember_recaptcha_public');
    $emember_enable_recaptcha = $emember_config->getValue('emember_enable_recaptcha');
    if (!function_exists('recaptcha_get_html')) {
        require_once WP_PLUGIN_DIR . '/' . WP_EMEMBER_FOLDER . '/recaptchalib.php';
    }
    ob_start();
    $letter_number_underscore = $emember_config->getValue('eMember_auto_affiliate_account') ? ',custom[onlyLetterNumberUnderscore]' : ',custom[ememberUserName]';
    ?>
    <script type="text/javascript" src="<?php 
    echo site_url();
    ?>
?emember_load_js=registration&id=wp_emember_regoForm"></script>
    <form action="" method="post" name="wp_emember_regoForm" id="wp_emember_regoForm" >
        <?php 
    wp_nonce_field('emember-plain-registration-nonce');
    ?>
        <input type="hidden" name="emember_dsc_nonce" value="<?php 
    echo uniqid();
    ?>
">
        <?php 
    if ($level != 0) {
        ?>
            <input type="hidden" name="custom_member_level_shortcode" value="<?php 
        echo $level;
        ?>
" />
        <?php 
    }
    ?>
        <?php 
    if (isset($_POST['eMember_id']) && isset($_POST['eMember_reg_code'])) {
        ?>
            <input type="hidden" name="eMember_id" value="<?php 
        echo strip_tags($_POST['eMember_id']);
        ?>
" />
            <input type="hidden" name="eMember_reg_code" value="<?php 
        echo strip_tags($_POST['eMember_reg_code']);
        ?>
" />
        <?php 
    }
    ?>
        <table width="95%" border="0" cellpadding="3" cellspacing="3" class="forms">
            <tr>
                <td><label for="wp_emember_user_name"  class="eMember_label"><?php 
    echo EMEMBER_USERNAME;
    ?>
: </label></td>
                <td><input type="text" id="wp_emember_user_name" name="wp_emember_user_name" size="20" value="<?php 
    echo strip_tags(isset($_POST['wp_emember_user_name']) ? $_POST['wp_emember_user_name'] : "");
    ?>
" class="validate[required,minSize[4]<?php 
    echo $letter_number_underscore;
    ?>
,ajax[ajaxUserCall]] eMember_text_input" /></td>
            </tr>
            <tr>
                <td><label for="wp_emember_pwd" class="eMember_label"><?php 
    echo EMEMBER_PASSWORD;
    ?>
: </label></td>
                <td><input type="password" id="wp_emember_pwd" name="wp_emember_pwd" size="20" value="" class="validate[required,minSize[4]] eMember_text_input" /></td>
            </tr>
            <?php 
    if ($emember_config->getValue('eMember_show_confirm_pass_field')) {
        ?>
                <tr>
                    <td><label for="wp_emember_pwd_re" class="eMember_label"><?php 
        echo EMEMBER_PASSWORD_REPEAT;
        ?>
: </label></td>
                    <td><input type="password" id="wp_emember_pwd_re" name="wp_emember_pwd_re" size="20" value="" class="validate[required,minSize[4],equals[wp_emember_pwd]] eMember_text_input" /></td>
                </tr>
            <?php 
    }
    ?>
            <tr>
                <td><label for="wp_emember_email" class="eMember_label"><?php 
    echo EMEMBER_EMAIL;
    ?>
: </label></td>
                <td><input type="text" id="wp_emember_email" name="wp_emember_email" size="20" value="<?php 
    echo strip_tags(isset($_POST['wp_emember_email']) ? $_POST['wp_emember_email'] : "");
    ?>
" class="validate[required,custom[email]] eMember_text_input" <?php 
    echo $readonlyemail;
    ?>
 /></td>
            </tr>
            <tr <?php 
    echo $emember_config->getValue('eMember_hide_membership_field') ? "class='emember_hidden'" : "";
    ?>
>
                <td><label for="wp_emember_member_level" class="eMember_label"> <?php 
    echo EMEMBER_MEMBERSHIP_LEVEL;
    ?>
: </label></td>
                <td><input type="text" id="wp_emember_member_level" name="wp_emember_member_level" size="20" value="<?php 
    echo strip_tags(isset($_POST['wp_emember_member_level']) ? $_POST['wp_emember_member_level'] : "");
    ?>
" class="validate[required] eMember_text_input" readonly /></td>
            </tr>
            <?php 
    if ($emember_config->getValue('eMember_reg_title')) {
        ?>
                <tr>
                    <td width="30%"><label for="atitle" class="eMember_label"><?php 
        echo EMEMBER_TITLE;
        ?>
: </label></td>
                    <td>
                        <select name="wp_emember_title">
                            <option  <?php 
        echo isset($_POST['wp_emember_title']) && $_POST['wp_emember_title'] === 'not specified' ? 'selected=\'selected\'' : '';
        ?>
 value="not specified"><?php 
        echo EMEMBER_GENDER_UNSPECIFIED;
        ?>
</option>
                            <option <?php 
        echo isset($_POST['wp_emember_title']) && $_POST['wp_emember_title'] === 'Mr' ? 'selected=\'selected\'' : '';
        ?>
 value="Mr"><?php 
        echo EMEMBER_MR;
        ?>
</option>
                            <option <?php 
        echo isset($_POST['wp_emember_title']) && $_POST['wp_emember_title'] === 'Mrs' ? 'selected=\'selected\'' : '';
        ?>
 value="Mrs"><?php 
        echo EMEMBER_MRS;
        ?>
</option>
                            <option <?php 
        echo isset($_POST['wp_emember_title']) && $_POST['wp_emember_title'] === 'Miss' ? 'selected=\'selected\'' : '';
        ?>
 value="Miss"><?php 
        echo EMEMBER_MISS;
        ?>
</option>
                            <option <?php 
        echo isset($_POST['wp_emember_title']) && $_POST['wp_emember_title'] === 'Ms' ? 'selected=\'selected\'' : '';
        ?>
 value="Ms"><?php 
        echo EMEMBER_MS;
        ?>
</option>
                            <option <?php 
        echo isset($_POST['wp_emember_title']) && $_POST['wp_emember_title'] === 'Dr' ? 'selected=\'selected\'' : '';
        ?>
 value="Dr"><?php 
        echo EMEMBER_DR;
        ?>
</option>
                        </select>
                    </td>
                </tr>
            <?php 
    }
    ?>
            <?php 
    if ($emember_config->getValue('eMember_reg_firstname')) {
        ?>
                <tr>
                    <td><label for="wp_emember_firstname" class="eMember_label"><?php 
        echo EMEMBER_FIRST_NAME;
        ?>
: </label></td>
                    <td>
                        <input type="text" id="wp_emember_firstname" name="wp_emember_firstname" size="20" value="<?php 
        echo strip_tags(isset($_POST['wp_emember_firstname']) ? $_POST['wp_emember_firstname'] : "");
        ?>
" class="<?php 
        echo $emember_config->getValue('eMember_reg_firstname_required') ? 'validate[required] ' : "";
        ?>
eMember_text_input" />
                    </td>
                </tr>
            <?php 
    }
    ?>
            <?php 
    if ($emember_config->getValue('eMember_reg_lastname')) {
        ?>
                <tr>
                    <td><label for="wp_emember_lastname" class="eMember_label"><?php 
        echo EMEMBER_LAST_NAME;
        ?>
: </label></td>
                    <td><input type="text" id="wp_emember_lastname" name="wp_emember_lastname" size="20" value="<?php 
        echo strip_tags(isset($_POST['wp_emember_lastname']) ? $_POST['wp_emember_lastname'] : "");
        ?>
" class="<?php 
        echo $emember_config->getValue('eMember_reg_lastname_required') ? 'validate[required] ' : "";
        ?>
eMember_text_input" /></td>
                </tr>
            <?php 
    }
    ?>
            <?php 
    if ($emember_config->getValue('eMember_reg_phone')) {
        ?>
                <tr>
                    <td><label for="wp_emember_email" class="eMember_label"><?php 
        echo EMEMBER_PHONE;
        ?>
: </label></td>
                    <td><input type="text" id="wp_emember_phone" name="wp_emember_phone" size="20" value="<?php 
        echo strip_tags(isset($_POST['wp_emember_phone']) ? $_POST['wp_emember_phone'] : "");
        ?>
" class="<?php 
        echo $emember_config->getValue('eMember_reg_phone_required') ? 'validate[required,custom[phone]] ' : "";
        ?>
eMember_text_input" /></td>
                </tr>
            <?php 
    }
    ?>
            <?php 
    if ($emember_config->getValue('eMember_reg_company')) {
        ?>
                <tr>
                    <td><label for="wp_emember_company_name" class="eMember_label"><?php 
        echo EMEMBER_COMPANY;
        ?>
: </label></td>
                    <td><input type="text" id="wp_emember_company_name" name="wp_emember_company_name" size="20" value="<?php 
        echo strip_tags(isset($_POST['wp_emember_company_name']) ? $_POST['wp_emember_company_name'] : "");
        ?>
" class="<?php 
        echo $emember_config->getValue('eMember_reg_company_required') ? 'validate[required] ' : "";
        ?>
eMember_text_input" /></td>
                </tr>
            <?php 
    }
    ?>
            <?php 
    if ($emember_config->getValue('eMember_reg_street')) {
        ?>
                <tr>
                    <td><label for="emember_street" class="eMember_label"><?php 
        echo EMEMBER_ADDRESS_STREET;
        ?>
: </label></td>
                    <td><input type="text" id="wp_emember_street" name="wp_emember_street" size="20" value="<?php 
        echo strip_tags($_POST['wp_emember_street']);
        ?>
" class="<?php 
        echo $emember_config->getValue('eMember_reg_street_required') ? 'validate[required] ' : "";
        ?>
eMember_text_input" /></td>
                </tr>
            <?php 
    }
    ?>
            <?php 
    if ($emember_config->getValue('eMember_reg_city')) {
        ?>
                <tr>
                    <td><label for="wp_emember_city" class="eMember_label"><?php 
        echo EMEMBER_ADDRESS_CITY;
        ?>
: </label></td>
                    <td><input type="text" id="wp_emember_city" name="wp_emember_city" size="20" value="<?php 
        echo strip_tags(isset($_POST['wp_emember_city']) ? $_POST['wp_emember_city'] : "");
        ?>
" class="<?php 
        echo $emember_config->getValue('eMember_reg_city_required') ? 'validate[required] ' : "";
        ?>
eMember_text_input" /></td>
                </tr>
            <?php 
    }
    ?>
            <?php 
    if ($emember_config->getValue('eMember_reg_state')) {
        ?>
                <tr>
                    <td><label for="wp_emember_state" class="eMember_label"><?php 
        echo EMEMBER_ADDRESS_STATE;
        ?>
: </label></td>
                    <td><input type="text" id="wp_emember_state" name="wp_emember_state" size="20" value="<?php 
        echo strip_tags(isset($_POST['wp_emember_state']) ? $_POST['wp_emember_state'] : "");
        ?>
" class="<?php 
        echo $emember_config->getValue('eMember_reg_state_required') ? 'validate[required] ' : "";
        ?>
eMember_text_input" /></td>
                </tr>
            <?php 
    }
    ?>
            <?php 
    if ($emember_config->getValue('eMember_reg_zipcode')) {
        ?>
                <tr>
                    <td><label for="wp_emember_zipcode" class="eMember_label"><?php 
        echo EMEMBER_ADDRESS_ZIP;
        ?>
: </label></td>
                    <td><input type="text" id="wp_emember_zipcode" name="wp_emember_zipcode" size="20" value="<?php 
        echo strip_tags(isset($_POST['wp_emember_zipcode']) ? $_POST['wp_emember_zipcode'] : "");
        ?>
" class="<?php 
        echo $emember_config->getValue('eMember_reg_zipcode_required') ? 'validate[required] ' : "";
        ?>
eMember_text_input" /></td>
                </tr>
            <?php 
    }
    ?>
            <?php 
    if ($emember_config->getValue('eMember_reg_country')) {
        ?>

                <tr>
                    <td><label for="wp_emember_country" class="eMember_label"><?php 
        echo EMEMBER_ADDRESS_COUNTRY;
        ?>
: </label></td>
                    <td>
                        <select name="wp_emember_country" id="wp_emember_country" class="<?php 
        echo $emember_config->getValue('eMember_reg_country_required') ? 'validate[required] ' : "";
        ?>
eMember_text_input" >
                            <?php 
        strip_tags(isset($_POST['wp_emember_country']) ? $selected_country = $_POST['wp_emember_country'] : "");
        echo emember_country_list_dropdown($selected_country);
        ?>
                        </select>
                    </td>
                </tr>
            <?php 
    }
    ?>
            <?php 
    if ($emember_config->getValue('eMember_reg_gender')) {
        ?>
                <tr >
                    <td > <label for="wp_emember_gender" class="eMember_label"><?php 
        echo EMEMBER_GENDER;
        ?>
: </label></td>
                    <td>
                        <select name="wp_emember_gender" id="wp_emember_gender">
                            <option  <?php 
        echo isset($_POST['wp_emember_gender']) && $_POST['wp_emember_gender'] === 'male' ? 'selected=\'selected\'' : '';
        ?>
 value="male"><?php 
        echo EMEMBER_GENDER_MALE;
        ?>
</option>
                            <option  <?php 
        echo isset($_POST['wp_emember_gender']) && $_POST['wp_emember_gender'] === 'female' ? 'selected=\'selected\'' : '';
        ?>
 value="female"><?php 
        echo EMEMBER_GENDER_FEMALE;
        ?>
</option>
                            <option  <?php 
        echo isset($_POST['wp_emember_gender']) && $_POST['wp_emember_gender'] === 'not specified' ? 'selected=\'selected\'' : '';
        ?>
 value="not specified"><?php 
        echo EMEMBER_GENDER_UNSPECIFIED;
        ?>
</option>
                        </select>
                    </td>
                </tr>
                <?php 
    }
    include 'custom_field_template.php';
    $use_ssl = false;
    if (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on") {
        $use_ssl = true;
    }
    ?>
            <tr>
                <td></td>
                <td align="left">
                    <?php 
    echo $emember_enable_recaptcha ? recaptcha_get_html($publickey, $error, $use_ssl) : '';
    echo apply_filters('emember_captcha', "");
    ?>
  </td></tr>
            <?php 
    if ($emember_config->getValue('eMember_show_terms_conditions')) {
        ?>
                <tr>
                    <td colspan="2" align="center"><?php 
        echo EMEMBER_ACCEPT;
        ?>
 <a href="<?php 
        echo $emember_config->getValue('eMember_terms_conditions_page');
        ?>
" target="_blank"> <?php 
        echo EMEMBER_TERMS_CONDITIONS;
        ?>
</a>
                        &nbsp;<input type="checkbox" class="validate[required]" id="emember_terms_conditions" name="emember_terms_conditions" value="1"></input>
                    </td>
                </tr>
            <?php 
    }
    ?>
            <tr>
                <td></td>
                <td><input class="eMember_button submit" name="eMember_Register" type="submit" id="eMember_Register" value="<?php 
    echo EMEMBER_REGISTRATION;
    ?>
" /></td>
            </tr>
        </table>
    </form><br />
    <?php 
    $output = ob_get_contents();
    ob_end_clean();
    return $output;
}
Example #8
0
function sync_emember_profile($wp_user_id)
{
    $wp_user_data = get_userdata($wp_user_id);
    $profile = dbAccess::find(WP_EMEMBER_MEMBERS_TABLE_NAME, ' user_name=\'' . $wp_user_data->user_login . '\'');
    $profile = (array) $profile;
    if (empty($profile)) {
        return;
    }
    $profile['user_name'] = $wp_user_data->user_login;
    $profile['email'] = $wp_user_data->user_email;
    $profile['password'] = $wp_user_data->user_pass;
    $profile['first_name'] = $wp_user_data->user_firstname;
    $profile['last_name'] = $wp_user_data->user_lastname;
    dbAccess::update(WP_EMEMBER_MEMBERS_TABLE_NAME, 'member_id = ' . $profile['member_id'], $profile);
}
Example #9
0
function emember_update_profile_init()
{
    if (isset($_POST['eMember_update_profile'])) {
        $nonce = $_REQUEST['_wpnonce'];
        if (!wp_verify_nonce($nonce, 'emember-update-profile-nonce')) {
            eMember_log_debug("Profile update nonce check failed ", true);
            die("Security check failed on profile update");
        }
        global $wpdb;
        $emember_config = Emember_Config::getInstance();
        include_once ABSPATH . WPINC . '/class-phpass.php';
        $resultset = dbAccess::find(WP_EMEMBER_MEMBERS_TABLE_NAME, ' member_id=' . esc_sql($_POST['member_id']));
        $wp_user_id = username_exists($resultset->user_name);
        $updatable = true;
        if (isset($_POST['wp_emember_email'])) {
            $emmber_email_owner = emember_email_exists($_POST['wp_emember_email']);
            $wp_email_owner = email_exists($_POST['wp_emember_email']);
            if (!is_email($_POST['wp_emember_email'])) {
                $_POST['eMember_profile_update_result'] = EMEMBER_EMAIL_INVALID;
                $updatable = false;
            } else {
                if ($wp_email_owner && $wp_email_owner != $wp_user_id || $emmber_email_owner && $emmber_email_owner != $_POST['member_id']) {
                    $_POST['eMember_profile_update_result'] = '<span class="emember_error">' . EMEMBER_EMAIL_UNAVAIL . ' </span>';
                    $updatable = false;
                }
            }
        }
        if ($_POST['wp_emember_pwd'] != $_POST['wp_emember_pwd_r']) {
            $_POST['eMember_profile_update_result'] = '<span class="emember_error">' . EMEMBER_PASSWORD_MISMATCH . '</span>';
            $updatable = false;
        }
        if ($updatable) {
            $wp_hasher = new PasswordHash(8, TRUE);
            $fields = array();
            if (isset($_POST['wp_emember_title'])) {
                $fields['title'] = strip_tags($_POST['wp_emember_title']);
            }
            if (isset($_POST['wp_emember_firstname'])) {
                $fields['first_name'] = strip_tags($_POST['wp_emember_firstname']);
            }
            if (isset($_POST['wp_emember_lastname'])) {
                $fields['last_name'] = strip_tags($_POST['wp_emember_lastname']);
            }
            if (isset($_POST['wp_emember_email'])) {
                $fields['email'] = strip_tags($_POST['wp_emember_email']);
            }
            if (isset($_POST['wp_emember_phone'])) {
                $fields['phone'] = strip_tags($_POST['wp_emember_phone']);
            }
            if (isset($_POST['wp_emember_street'])) {
                $fields['address_street'] = strip_tags($_POST['wp_emember_street']);
            }
            if (isset($_POST['wp_emember_city'])) {
                $fields['address_city'] = strip_tags($_POST['wp_emember_city']);
            }
            if (isset($_POST['wp_emember_state'])) {
                $fields['address_state'] = strip_tags($_POST['wp_emember_state']);
            }
            if (isset($_POST['wp_emember_zipcode'])) {
                $fields['address_zipcode'] = strip_tags($_POST['wp_emember_zipcode']);
            }
            if (isset($_POST['wp_emember_country'])) {
                $fields['country'] = strip_tags($_POST['wp_emember_country']);
            }
            if (isset($_POST['wp_emember_gender'])) {
                $fields['gender'] = strip_tags($_POST['wp_emember_gender']);
            }
            if (isset($_POST['wp_emember_company_name'])) {
                $fields['company_name'] = strip_tags($_POST['wp_emember_company_name']);
            }
            if (!empty($_POST['wp_emember_pwd'])) {
                $password = $wp_hasher->HashPassword(strip_tags($_POST['wp_emember_pwd']));
                $fields['password'] = $password;
            }
            if ($wp_user_id) {
                $wp_user_info = array();
                $wp_user_info['first_name'] = strip_tags(isset($_POST['wp_emember_firstname']) ? $_POST['wp_emember_firstname'] : "");
                $wp_user_info['last_name'] = strip_tags(isset($_POST['wp_emember_lastname']) ? $_POST['wp_emember_lastname'] : "");
                $wp_user_info['user_email'] = strip_tags(isset($_POST['wp_emember_email']) ? $_POST['wp_emember_email'] : "");
                $wp_user_info['ID'] = $wp_user_id;
                if (!empty($_POST['wp_emember_pwd'])) {
                    $wp_user_info['user_pass'] = $_POST['wp_emember_pwd'];
                }
                wp_update_user($wp_user_info);
            }
            $_POST['member_id'] = strip_tags($_POST['member_id']);
            if (count($fields) > 0) {
                $ret = dbAccess::update(WP_EMEMBER_MEMBERS_TABLE_NAME, ' member_id =' . esc_sql($_POST['member_id']), $fields);
            }
            if (isset($_POST['emember_custom'])) {
                $custom_fields = dbAccess::find(WP_EMEMBER_MEMBERS_META_TABLE, ' user_id=' . esc_sql($_POST['member_id']) . ' AND meta_key=\'custom_field\'');
                if ($custom_fields) {
                    $ret = $wpdb->query('UPDATE ' . WP_EMEMBER_MEMBERS_META_TABLE . ' SET meta_value =' . '\'' . addslashes(serialize($_POST['emember_custom'])) . '\' WHERE meta_key = \'custom_field\' AND  user_id=' . $_POST['member_id']);
                } else {
                    $ret = $wpdb->query("INSERT INTO " . WP_EMEMBER_MEMBERS_META_TABLE . '( user_id, meta_key, meta_value ) VALUES(' . $_POST['member_id'] . ',"custom_field",' . '\'' . addslashes(serialize($_POST['emember_custom'])) . '\')');
                }
            } else {
                $ret = $wpdb->query('DELETE FROM ' . WP_EMEMBER_MEMBERS_META_TABLE . '  WHERE meta_key = \'custom_field\' AND  user_id=' . esc_sql($_POST['member_id']));
            }
            if ($ret === false) {
                $_POST['eMember_profile_update_result'] = 'Failed';
            } else {
                $edit_profile_page = $emember_config->getValue('eMember_profile_edit_page');
                $profile_updated_msg = '<div class="emember_profile_updated_msg">';
                $profile_updated_msg .= EMEMBER_PROFILE_UPDATED;
                if (!empty($edit_profile_page)) {
                    $profile_updated_msg .= ' <a href="' . $edit_profile_page . '">' . EMEMBER_EDIT_YOUR_PROFILE_AGAIN . '</a>';
                }
                $profile_updated_msg .= '</div>';
                $_POST['eMember_profile_update_result'] = $profile_updated_msg;
                do_action('eMember_profile_updated', $fields, $custom_fields);
                //Update the affiliate end if using the auto affiliate feature
                eMember_handle_affiliate_profile_update();
            }
        }
    }
}
Example #10
0
    echo "Membership creation failed. Insert to db failed.\n";
    eMember_log_debug('Membership creation failed', false);
    exit;
} else {
    if (isset($_REQUEST['openid_type'])) {
        $fields = array();
        global $wpdb;
        $fields['type'] = strip_tags($_REQUEST['openid_type']);
        $fields['openuid'] = strip_tags($_REQUEST['openid_uid']);
        $fields['emember_id'] = strip_tags($wpdb->insert_id);
        $wpdb->insert(WP_EMEMBER_OPENID_TABLE, $fields);
    }
    eMember_log_debug('Membership creation succeeded for:' . $email, true);
}
//Query the membership level table to get a handle for the level
$membership_level_resultset = dbAccess::find(WP_EMEMBER_MEMBERSHIP_LEVEL_TABLE, " id='" . $membership_level_id . "'");
// Create the corresponding wordpress user
$should_create_wp_user = $emember_config->getValue('eMember_create_wp_user');
if ($should_create_wp_user) {
    $role_names = array(1 => 'Administrator', 2 => 'Editor', 3 => 'Author', 4 => 'Contributor', 5 => 'Subscriber');
    $wp_user_info = array();
    $wp_user_info['user_nicename'] = implode('-', explode(' ', $username));
    $wp_user_info['display_name'] = $username;
    $wp_user_info['nickname'] = $username;
    $wp_user_info['first_name'] = $first_name;
    $wp_user_info['last_name'] = $last_name;
    $wp_user_info['role'] = $membership_level_resultset->role;
    $wp_user_info['user_registered'] = date('Y-m-d H:i:s');
    //$wp_user_id = wp_create_user($username, $password, $email);  //Need to use the non hashed password
    $wp_user_id = eMember_wp_create_user($username, $password, $email);
    $wp_user_info['ID'] = $wp_user_id;
Example #11
0
<?php

/**
 * RSS2 Feed Template for displaying RSS2 Posts feed.
 *
 * @package WordPress
 */
if (isset($_GET['key'])) {
    $result = dbAccess::find(WP_EMEMBER_MEMBERS_TABLE_NAME, 'md5(member_id)=\'' . $_GET['key'] . '\'');
    if (empty($result)) {
        die(EMEMBER_NO_USER_KEY);
    }
} else {
    die(EMEMBER_WRONG_RSS_URL);
}
header('Content-Type: ' . feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true);
$more = 1;
$emember_auth = Emember_Auth::getInstance();
$emember_config = Emember_Config::getInstance();
$emember_auth->setPermissions($result->membership_level);
echo '<?xml version="1.0" encoding="' . get_option('blog_charset') . '"?' . '>';
?>

<rss version="2.0"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:wfw="http://wellformedweb.org/CommentAPI/"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
     xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
     <?php 
Example #12
0
    eMember_log_debug('secret key invalid...', false);
    exit;
}
if (empty($_REQUEST['member_id']) && empty($_REQUEST['email'])) {
    echo "Error!\n";
    echo "Missing mandatory field. Member ID or Email value must be present!\n";
    eMember_log_debug('Missing mandatory field. Member ID or Email must be present...', false);
    exit;
}
//Mandatory data
$email = esc_sql(strip_tags($_REQUEST['email']));
$member_id = strip_tags($_REQUEST['member_id']);
eMember_log_debug("Profile deactivation API Called for member ID: " . $member_id . " or Email: " . $email, false);
if (empty($member_id)) {
    //Retrieve member ID using email
    $resultset = dbAccess::find(WP_EMEMBER_MEMBERS_TABLE_NAME, " email = '{$email}'");
    if (!$resultset) {
        echo "Error!\n";
        echo "Could not find an eMember user with the provided email address!\n";
        exit;
    }
    $member_id = $resultset->member_id;
    eMember_log_debug("Retrieving member ID from email address. Retrieved ID: " . $member_id, false);
}
//Optional data
$fields = array();
$fields['account_state'] = 'inactive';
if (isset($_REQUEST['account_state'])) {
    $fields['account_state'] = strip_tags($_REQUEST['account_state']);
}
//Update the emember user profile with the provided data
Example #13
0
function wp_eMember_general_settings()
{
    $emember_config = Emember_Config::getInstance();
    if (isset($_POST['wp_emember_reset_logfile'])) {
        if (wp_emember_reset_log_files()) {
            echo '<div id="message" class="updated fade"><p><strong>Debug log files have been reset!</strong></p></div>';
        } else {
            echo '<div id="message" class="updated fade"><p><strong>Debug log files could not be reset!</strong></p></div>';
        }
    } else {
        if (isset($_POST['info_update'])) {
            $msg = '';
            if ($_POST['eMember_enable_free_membership']) {
                if (empty($_POST["eMember_free_membership_level_id"])) {
                    $msg .= 'Please set free membership ID.<br />';
                } else {
                    if ($_POST["eMember_free_membership_level_id"] == 1) {
                        $msg .= 'Membership level with the given ID is reserved ! <br / > Please use different one.<br />';
                    } else {
                        if (is_numeric($_POST["eMember_free_membership_level_id"])) {
                            $l = dbAccess::find(WP_EMEMBER_MEMBERSHIP_LEVEL_TABLE, " id='" . $_POST["eMember_free_membership_level_id"] . "' ");
                            if ($l) {
                                $emember_config->setValue('eMember_enable_free_membership', 'checked="checked"');
                                $emember_config->setValue('eMember_free_membership_level_id', (string) $_POST["eMember_free_membership_level_id"]);
                            } else {
                                $msg .= 'Membership level with the given ID is not defined! <br / > Please correct it.<br />';
                            }
                        } else {
                            $msg .= 'Membership level with the given ID is not a number! <br / > Please correct it.<br />';
                        }
                    }
                }
            } else {
                $emember_config->setValue('eMember_enable_free_membership', '');
                $emember_config->setValue('eMember_free_membership_level_id', '');
            }
            if (!empty($_POST['eMember_login_limit'])) {
                if (is_numeric($_POST['eMember_login_limit'])) {
                    $emember_config->setValue('eMember_login_limit', (string) $_POST["eMember_login_limit"]);
                } else {
                    $msg .= 'Login Limit must be a number! <br / > Please correct it.<br />';
                    $emember_config->setValue('eMember_login_limit', '');
                }
            } else {
                $emember_config->setValue('eMember_login_limit', '');
            }
            $emember_config->setValue('eMember_free_members_must_confirm_email', isset($_POST["eMember_free_members_must_confirm_email"]) ? 1 : '');
            $emember_config->setValue('wp_eMember_widget_title', (string) $_POST["wp_eMember_widget_title"]);
            $emember_config->setValue('wp_eMember_auto_logout', (string) $_POST["wp_eMember_auto_logout"]);
            $emember_config->setValue('eMember_language', (string) $_POST["eMember_language"]);
            //$emember_config->setValue('non_members_error_page',(string)$_POST["non_members_error_page"]);
            //$emember_config->setValue('wrong_membership_level', (string)$_POST["wrong_membership_level"]);
            $emember_config->setValue('eMember_rows_per_page', (string) $_POST["eMember_rows_per_page"]);
            $emember_config->setValue('eMember_enable_more_tag', isset($_POST["eMember_enable_more_tag"]) ? 1 : '');
            $emember_config->setValue('eMember_enable_redirection', isset($_POST["eMember_enable_redirection"]) ? 1 : '');
            $emember_config->setValue('eMember_enable_auto_login_after_rego', isset($_POST["eMember_enable_auto_login_after_rego"]) ? 1 : '');
            $emember_config->setValue('eMember_create_wp_user', isset($_POST["eMember_create_wp_user"]) ? 1 : '');
            $emember_config->setValue('eMember_signin_wp_user', isset($_POST["eMember_signin_wp_user"]) ? 1 : '');
            $emember_config->setValue('eMember_enable_bookmark', isset($_POST["eMember_enable_bookmark"]) ? 1 : '');
            $emember_config->setValue('eMember_enable_bookmark_for_loggedin', isset($_POST["eMember_enable_bookmark_for_loggedin"]) ? 1 : '');
            $emember_config->setValue('eMember_allow_expired_account', isset($_POST["eMember_allow_expired_account"]) ? "checked='checked'" : '');
            $emember_config->setValue('eMember_account_upgrade_url', isset($_POST["eMember_account_upgrade_url"]) ? $_POST["eMember_account_upgrade_url"] : '');
            $emember_config->setValue('eMember_signin_emem_user', isset($_POST["eMember_signin_emem_user"]) ? 1 : '');
            $emember_config->setValue('eMember_preserve_wp_user_role', isset($_POST["eMember_preserve_wp_user_role"]) ? 1 : '');
            $emember_config->setValue('eMember_auto_affiliate_account', isset($_POST["eMember_auto_affiliate_account"]) ? 1 : '');
            $emember_config->setValue('eMember_auto_affiliate_account_login', isset($_POST["eMember_auto_affiliate_account_login"]) ? 1 : '');
            $emember_config->setValue('wp_eMember_affiliate_account_restriction_list', trim($_POST["wp_eMember_affiliate_account_restriction_list"]));
            $emember_config->setValue('eMember_enable_debug', isset($_POST["eMember_enable_debug"]) ? 1 : '');
            $emember_config->setValue('eMember_enable_sandbox', isset($_POST["eMember_enable_sandbox"]) ? 1 : '');
            $emember_config->setValue('eMember_enable_public_profile', isset($_POST["eMember_enable_public_profile"]) ? 1 : '');
            $emember_config->setValue('eMember_allow_account_removal', isset($_POST["eMember_allow_account_removal"]) ? 1 : '');
            $emember_config->setValue('eMember_allow_wp_account_removal', isset($_POST["eMember_allow_wp_account_removal"]) ? 1 : '');
            $emember_config->setValue('eMember_secure_rss', isset($_POST["eMember_secure_rss"]) ? 1 : '');
            $emember_config->setValue('eMember_show_link_to_after_login_page', isset($_POST["eMember_show_link_to_after_login_page"]) ? 1 : '');
            $emember_config->setValue('eMember_enable_fancy_login', isset($_POST["eMember_enable_fancy_login"]) ? $_POST["eMember_enable_fancy_login"] : '');
            $emember_config->setValue('emember_disable_bookmark_by_page', isset($_POST['emember_disable_bookmark_by_page']) ? $_POST['emember_disable_bookmark_by_page'] : array());
            $emember_config->setValue('emember_disable_bookmark_by_type', isset($_POST['emember_disable_bookmark_by_type']) ? $_POST['emember_disable_bookmark_by_type'] : array());
            $emember_config->setValue('eMember_disable_inline_login', isset($_POST["eMember_disable_inline_login"]) ? 1 : '');
            $emember_config->setValue('eMember_enable_domain_lockdown', isset($_POST["eMember_enable_domain_lockdown"]) ? $_POST["eMember_enable_domain_lockdown"] : 0);
            $emember_config->setValue('eMember_use_gravatar', isset($_POST["eMember_use_gravatar"]) ? "checked='checked'" : '');
            $emember_config->setValue('eMember_override_avatar', isset($_POST["eMember_override_avatar"]) ? "checked='checked'" : '');
            $emember_config->setValue('eMember_custom_field', isset($_POST["eMember_custom_field"]) ? "checked='checked'" : '');
            $emember_config->setValue('eMember_email_notification', isset($_POST["eMember_email_notification"]) ? "checked='checked'" : '');
            $emember_config->setValue('eMember_protect_comments_separately', isset($_POST["eMember_protect_comments_separately"]) ? "checked='checked'" : '');
            $emember_config->setValue('eMember_enable_secondary_membership', isset($_POST["eMember_enable_secondary_membership"]) ? "checked='checked'" : '');
            $emember_config->setValue('eMember_secondary_membership_migrate', isset($_POST["eMember_secondary_membership_migrate"]) ? "checked='checked'" : '');
            $emember_config->setValue('eMember_manually_approve_member_registration', isset($_POST["eMember_manually_approve_member_registration"]) ? 1 : '');
            $emember_config->setValue('eMember_member_can_comment_only', isset($_POST["eMember_member_can_comment_only"]) ? 1 : '');
            $emember_config->setValue('eMember_google_first_click_free', isset($_POST["eMember_google_first_click_free"]) ? 1 : '');
            $tmpmsg = htmlentities(stripslashes($_POST['eMember_google_first_click_free_custom_msg']), ENT_COMPAT, "UTF-8");
            $emember_config->setValue('eMember_google_first_click_free_custom_msg', $tmpmsg);
            $emember_config->setValue('eMember_format_post_page_protected_msg', isset($_POST["eMember_format_post_page_protected_msg"]) ? 1 : '');
            $emember_config->setValue('eMember_turn_off_protected_msg_formatting', isset($_POST["eMember_turn_off_protected_msg_formatting"]) ? 1 : '');
            $emember_config->setValue('eMember_multiple_logins', isset($_POST["eMember_multiple_logins"]) ? 1 : '');
            $emember_config->setValue('eMember_multiple_logins_type', (string) $_POST["eMember_multiple_logins_type"]);
            //facebook feature
            //$emember_config->setValue('eMember_enable_fb_reg', isset($_POST["eMember_enable_fb_reg"])?"checked='checked'":'');
            $emember_config->setValue('eMember_secure_rss_seed', isset($_POST["eMember_secure_rss_seed"]) ? (string) $_POST["eMember_secure_rss_seed"] : "My Secret RSS Seed");
            $emember_config->setValue('eMember_domain_lockdown_exclude_url', (string) $_POST['eMember_domain_lockdown_exclude_url']);
            $emember_config->setValue('eMember_domain_lockdown_exclude_url_pattern', (string) $_POST['eMember_domain_lockdown_exclude_url_pattern']);
            $emember_config->setValue('eMember_domain_lockdown_include_url', (string) $_POST['eMember_domain_lockdown_include_url']);
            $emember_config->setValue('eMember_domain_lockdown_alt2popup', (string) $_POST['eMember_domain_lockdown_alt2popup']);
            $emember_config->setValue('wp_eMember_enable_remote_post', isset($_POST["wp_eMember_enable_remote_post"]) ? 1 : '');
            $emember_config->setValue('wp_eMember_secret_word_for_post', trim($_POST["wp_eMember_secret_word_for_post"]));
            echo '<div id="message" class="updated fade"><p>';
            echo $msg ? '<strong style="color:red;">' . $msg : '<strong>Options Updated!';
            echo '</strong></p></div>';
            $emember_config->saveConfig();
        }
    }
    if ($emember_config->getValue('eMember_enable_free_membership')) {
        $eMember_enable_free_membership = 'checked="checked"';
    } else {
        $eMember_enable_free_membership = '';
    }
    ?>
    <div class="eMember_grey_box">
        <p>For detailed documentation, information and updates, please visit the <a href="http://www.tipsandtricks-hq.com/wordpress-membership" target="_blank">WP eMember Documentation Page</a></p>
        <p>WP eMember plugin has a lot of setting options but don't get intimidated by it. Most of the default settings are good to get you started (keep things simple at first). Remember to watch the video tutorials from eMember's documentation page.</p>
        <p>Like the plugin? Give us a <a href="http://www.tipsandtricks-hq.com/?p=1706#gfts_share" target="_blank">thumbs up here</a> by clicking on a share button or leave a comment to let us know.</p>
    </div>

    <form method="post" action="<?php 
    echo $_SERVER["REQUEST_URI"];
    ?>
">
        <input type="hidden" name="info_update" id="info_update" value="true" />
        <div class="wrap">
            <div id="poststuff">
                <div id="post-body">
                    <!-- <div class="basic" style="float:left;"  id="list1a"> -->
                    <!-- <div class="title"><label for="title">General Settings</label></div> -->
                    <div class="postbox">
                        <h3><label for="title">General Settings</label></h3>
                        <div class="inside">
                            <table width="100%" border="0" cellspacing="0" cellpadding="6">
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>eMember Language:</strong>
                                    </td>
                                    <td align="left">
                                        <?php 
    $lang = $emember_config->getValue('eMember_language');
    ?>
                                        <select name="eMember_language" >
                                            <option <?php 
    echo $lang === 'eng' ? 'selected="selected"' : '';
    ?>
 value="eng">English</option>
                                            <option <?php 
    echo $lang === 'fr' ? 'selected="selected"' : '';
    ?>
 value="fr">French</option>
                                            <option <?php 
    echo $lang === 'ger' ? 'selected="selected"' : '';
    ?>
 value="ger">German</option>
                                            <option <?php 
    echo $lang === 'nld' ? 'selected="selected"' : '';
    ?>
 value="nld">Dutch</option>
                                            <option <?php 
    echo $lang === 'heb' ? 'selected="selected"' : '';
    ?>
 value="heb">Hebrew</option>
                                            <option <?php 
    echo $lang === 'ita' ? 'selected="selected"' : '';
    ?>
 value="ita">Italian</option>
                                            <option <?php 
    echo $lang === 'spa' ? 'selected="selected"' : '';
    ?>
 value="spa">Spanish</option>
                                            <option <?php 
    echo $lang === 'pl' ? 'selected="selected"' : '';
    ?>
 value="pl">Polish</option>
                                            <option <?php 
    echo $lang === 'ptg' ? 'selected="selected"' : '';
    ?>
 value="ptg">Portuguese</option>
                                        </select><br/>
                                        <i>Select the language that you want your emember be displayed in.</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Allow Free Membership:</strong>
                                    </td>
                                    <td align="left">
                                        <input type="checkbox" name="eMember_enable_free_membership" value="1" <?php 
    echo $eMember_enable_free_membership;
    ?>
 /><br />
                                        <i>If you want to allow free membership on your site then check this box and specify the free Membership Level ID below. Visitors can register for a free membership by visiting the registration page.</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Free Membership Level ID:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_free_membership_level_id" type="text" size="4" value="<?php 
    echo $emember_config->getValue('eMember_free_membership_level_id');
    ?>
"/><br /><i>If you want to allow free membership on your site then create a free membership level from the Manage Levels menu and specify the Level ID of that membership level here</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Free Members Must Confirm Email Address:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_free_members_must_confirm_email" type="checkbox"  <?php 
    $eMember_free_members_must_confirm_email = $emember_config->getValue('eMember_free_members_must_confirm_email');
    echo $eMember_free_members_must_confirm_email ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>If you want to force your free members to confirm their email address before they can register for an account then use this option. <a href="http://www.tipsandtricks-hq.com/wordpress-membership/?p=460" target="_blank">Read the full documentation</a> for this feature before using it.</i><br /><br />
                                    </td>
                                </tr>

                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Entries Per Page:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_rows_per_page" type="text" size="4" value="<?php 
    echo $emember_config->getValue('eMember_rows_per_page');
    ?>
"/><br />
                                        <i>Number of rows in each page for any list (example: the Manage Content Protection page). This value is used for pagination purpose.</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Enable More Tag Protection:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_enable_more_tag" type="checkbox"  <?php 
    $enable_more_tag = $emember_config->getValue('eMember_enable_more_tag');
    echo $enable_more_tag ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>Enables or disables "more" tag protection in the posts and pages. Anything after the More tag is protected. Anything before the more tag is teaser content</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Enable Public profile Listing:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_enable_public_profile" type="checkbox"  <?php 
    $enable_public_profile = $emember_config->getValue('eMember_enable_public_profile');
    echo $enable_public_profile ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>This enables the member profiles to be publicly available for others to browse. Use the [wp_eMember_user_list] shortcode on a page to display all the member profiles.</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Allow Account Deletion:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_allow_account_removal" type="checkbox"  <?php 
    $eMember_allow_account_removal = $emember_config->getValue('eMember_allow_account_removal');
    echo $eMember_allow_account_removal ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>Allows the member to delete their member account from the edit profile page.</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Allow Wordpress Account Deletion:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_allow_wp_account_removal" type="checkbox"  <?php 
    $eMember_allow_wp_account_removal = $emember_config->getValue('eMember_allow_wp_account_removal');
    echo $eMember_allow_wp_account_removal ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>If checked the corresponding WordPress user account will also be deleted when a member deletes his/her eMember account from the edit profile page</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Enable Secondary Membership:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_enable_secondary_membership" id="eMember_enable_secondary_membership" type="checkbox"  <?php 
    echo $emember_config->getValue('eMember_enable_secondary_membership');
    ?>
 value="1"/>
                                        <i>Enable the ability to assign multiple membership levels per user. <a href="http://www.tipsandtricks-hq.com/wordpress-membership/?p=291" target="_blank">Read More Here</a></i>
                                        <br />
                                        <input name="eMember_secondary_membership_migrate" id="eMember_secondary_membership_migrate"  type="checkbox"  <?php 
    echo $emember_config->getValue('eMember_secondary_membership_migrate');
    ?>
 value="1"/>
                                        <i>When a member's primary level expires, automatically set one of the non-expired secondary level as his primary level.</i>
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Use Gravatar Image in Profile:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_use_gravatar" type="checkbox"  <?php 
    echo $emember_config->getValue('eMember_use_gravatar');
    ?>
 value="1"/><br />
                                        <i>Check this if if you want to use a member's existing Gravatar image in eMember profile.</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Use Profile Image in WordPress Comment Avatar:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_override_avatar" type="checkbox"  <?php 
    echo $emember_config->getValue('eMember_override_avatar');
    ?>
 value="1"/><br />
                                        <i>Check this if you want eMember to show member's uploaded profile image in WordPress comment avatar.</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Enable Custom Fields: </strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_custom_field" type="checkbox"  <?php 
    echo $emember_config->getValue('eMember_custom_field');
    ?>
 value="1"/><br />
                                        <i>Enable/Disable the custom fields feature. You can configure custom fields from the "Custom Fields" settings tab.</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Enable Auto Expiry Email Notification: </strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_email_notification" type="checkbox"  <?php 
    echo $emember_config->getValue('eMember_email_notification');
    ?>
 value="1"/><br />
                                        <i>Enable/Disable automatic membership expiry email notification. For example, the plugin will automatically send an email to the member after their membership expires. You can configure the email in the <a href="admin.php?page=eMember_settings_menu&tab=2" target="_blank">Email Settings page</a></i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Manually Approve Member Registration:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_manually_approve_member_registration" type="checkbox"  <?php 
    $eMember_manually_approve_member_registration = $emember_config->getValue('eMember_manually_approve_member_registration');
    echo $eMember_manually_approve_member_registration ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>If you want to manually approve the member after they register then check this option. A member's account will be "Pending" after registration and the member will not be able to log in until you manually set the status to "Active".</i><br /><br />
                                    </td>
                                </tr>

                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Protect Comments Separately:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_protect_comments_separately" type="checkbox"  <?php 
    echo $emember_config->getValue('eMember_protect_comments_separately');
    ?>
 value="1"/><br />
                                        <i>By default all the comments on a post that is protected are also protected. If you want to individually protect each comment then check this option and protect the comments individually from the <a href="admin.php?page=eMember_membership_level_menu&level_action=2" target="_blank">Manage Content Protection</a> menu.</i><br /><br />
                                    </td>
                                </tr>

                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Members Must be Logged in to Comment</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_member_can_comment_only" type="checkbox"  <?php 
    $eMember_member_can_comment_only = $emember_config->getValue('eMember_member_can_comment_only');
    echo $eMember_member_can_comment_only ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>Check this option if you only want to allow the members of the site to be able to post a comment.</i><br /><br />
                                    </td>
                                </tr>

                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Enable Google First Click Free Feature</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_google_first_click_free" type="checkbox"  <?php 
    $eMember_google_first_click_free = $emember_config->getValue('eMember_google_first_click_free');
    echo $eMember_google_first_click_free ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>Check this option if you want to enable the Google first click free feature. <a href="http://www.tipsandtricks-hq.com/wordpress-membership/?p=413" target="_blank">Read More Here</a></i>
                                        <br /><input name="eMember_google_first_click_free_custom_msg" type="text" size="100" value="<?php 
    echo $emember_config->getValue('eMember_google_first_click_free_custom_msg');
    ?>
"/><br />
                                        <i>If you want to show a custom message to your first click free viewers who land on a protected post then specify the message in the above field.</i>
                                        <br /><br />
                                    </td>
                                </tr>

                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Format the Post/Page Protected Message</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_format_post_page_protected_msg" type="checkbox"  <?php 
    $eMember_format_post_page_protected_msg = $emember_config->getValue('eMember_format_post_page_protected_msg');
    echo $eMember_format_post_page_protected_msg ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>By default eMember shows plain text for the post/page protection message (Please Login to view this Content...). If you want the post/page protected message to stand out then check this option and it will apply a subtle formatting to the post/page protection message.</i><br /><br />
                                    </td>
                                </tr>

                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Turn Off Protected Message Formatting</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_turn_off_protected_msg_formatting" type="checkbox"  <?php 
    $eMember_turn_off_protected_msg_formatting = $emember_config->getValue('eMember_turn_off_protected_msg_formatting');
    echo $eMember_turn_off_protected_msg_formatting ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>By default eMember formats the section protection messages to make it easily visible by placing it inside a warning box. Check this option if you do not want eMember to apply any formatting to the section protection messages (this will make eMember output the plain text only).</i><br /><br />
                                    </td>
                                </tr>
                            </table>
                        </div>
                    </div>

                    <div class="postbox">
                        <h3><label for="title">Member Login Related Settings</label></h3>
                        <div class="inside">
                            <table width="100%" border="0" cellspacing="0" cellpadding="6">
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Login Widget Title:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="wp_eMember_widget_title" type="text" size="100" value="<?php 
    echo $emember_config->getValue('wp_eMember_widget_title');
    ?>
"/><br/>
                                        <i>You can customize the login widget title here. This title is displayed when you use the eMember login widget from the widgets menu.</i><br /><br />
                                    </td>
                                </tr>

                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Enable After login Redirection:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_enable_redirection" type="checkbox"  <?php 
    $enable_redirection = $emember_config->getValue('eMember_enable_redirection');
    echo $enable_redirection ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>Enables or disables redirection to a specific page after member login. You can specify the after login page in the member's profile or membership level or in the pages settings menu.</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Enable Auto Login After Registration:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_enable_auto_login_after_rego" type="checkbox"  <?php 
    $eMember_enable_auto_login_after_rego = $emember_config->getValue('eMember_enable_auto_login_after_rego');
    echo $eMember_enable_auto_login_after_rego ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>Use this option if you want to automatically log in your members right after they complete the registration.</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Display Secure RSS Feed:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_secure_rss" type="checkbox"  <?php 
    $eMember_secure_rss = $emember_config->getValue('eMember_secure_rss');
    echo $eMember_secure_rss ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>When checked the login widget will display a secure RSS feed link to the members.</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Display a Link to Member's Welcome Page:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_show_link_to_after_login_page" type="checkbox"  <?php 
    $eMember_show_link_to_after_login_page = $emember_config->getValue('eMember_show_link_to_after_login_page');
    echo $eMember_show_link_to_after_login_page ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>When checked the login widget will display a link to the member's welcome page (the after login page). The member will be able to click on this link to get to the member's welcome page (if you have specified one). You can specify the after login page URL in the <code>Pages/Forms Settings</code> tab.</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Enable Fancy Login Widget/Popup:</strong>
                                    </td>
                                    <td align="left">
                                        <input id="eMember_enable_fancy_login" name="eMember_enable_fancy_login" type="checkbox"  <?php 
    $eMember_enable_fancy_login = $emember_config->getValue('eMember_enable_fancy_login');
    echo $eMember_enable_fancy_login ? 'checked="checked"' : '';
    ?>
 value="<?php 
    echo empty($eMember_enable_fancy_login) ? 1 : $eMember_enable_fancy_login;
    ?>
"/>
                                        use
                                        <select id="emember_fancy_login_v">
                                            <option value="1">Style 1</option>
                                            <option value="2">Style 2</option>
                                        </select>
                                        <br />
                                        <i>When checked, clicking the login link will make the login widget/popup appear in a stylish way rather than redirecting to the login page.</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Disable Inline Login Widget Option:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_disable_inline_login" type="checkbox"  <?php 
    $eMember_disable_inline_login = $emember_config->getValue('eMember_disable_inline_login');
    echo $eMember_disable_inline_login ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>By default eMember shows an inline login widget when your users click on a login link inside a post or page. Checking this option will disable the inline login widget and redirect the user to the login page.</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Login Restriction by IP Address:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_login_limit" type="text" size="4" value="<?php 
    echo $emember_config->getValue('eMember_login_limit');
    ?>
"/><i> IPs per day
                                            <br />If the number of login attempts from different IP addresses exceed this limit then the member's account will be locked. Leave this field empty to disable this feature.</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Logout Member After XX Minutes of Inactivity:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="wp_eMember_auto_logout" type="text" size="5" value="<?php 
    echo $emember_config->getValue('wp_eMember_auto_logout');
    ?>
"/> Minutes<br/>
                                        <i>Use this option if you want to force your members to re-authenticate after XX minutes of inactivity. Leave this field empty or use a value of 0 to disable this feature.</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Disable Simultaneous Member Login</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_multiple_logins" type="checkbox"  <?php 
    $eMember_multiple_logins = $emember_config->getValue('eMember_multiple_logins');
    echo $eMember_multiple_logins ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>Check this option to disable simultaneous member login using the same member account details (two users cannot log-in to the same account and view protected content at the same time). The <code>Remember me</code> feature of the login form will be disabled when this feature is enabled.</i><br />
                                        <?php 
    $multiple_logins_type = $emember_config->getValue('eMember_multiple_logins_type');
    if (empty($multiple_logins_type)) {
        $multiple_logins_type = 'last';
    }
    ?>
                                        <input type="radio" value="last" <?php 
    if ($multiple_logins_type == 'last') {
        echo 'checked="checked"';
    }
    ?>
 name="eMember_multiple_logins_type" /> Keep only most recent login active<br />
                                        <input type="radio" value="current" <?php 
    if ($multiple_logins_type == 'current') {
        echo 'checked="checked"';
    }
    ?>
 name="eMember_multiple_logins_type" /> Keep only current session active<br />
                                    </td>
                                </tr>
                            </table>
                        </div>
                    </div>

                    <div class="postbox">
                        <h3><label for="title">Account Upgrade and Renewal Settings</label></h3>
                        <div class="inside">
                            <strong><i>When a logged in member makes a new membership payment, his/her account is automatically upgraded/renewed to reflect the recent payment.</i></strong><br /><br />
                            <table width="100%" border="0" cellspacing="0" cellpadding="6">
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Allow Expired Account login:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_allow_expired_account" type="checkbox"  <?php 
    $allow_expired = $emember_config->getValue('eMember_allow_expired_account');
    echo $allow_expired ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>When checked members whose account has expired will be able to log into the system but won't be able to view any protected content. This will allow them to easily renew their account by making another payment.</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Membership renewal Page:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_account_upgrade_url" type="text" size="100" value="<?php 
    echo $emember_config->getValue('eMember_account_upgrade_url');
    ?>
"/><br />
                                        <i>The URL of the page where members can renew their membership. You can simply use the same page as the "Membership Payment/Join Page".</i><br /><br />
                                    </td>
                                </tr>
                            </table>
                        </div>
                    </div>
                    <div class="postbox">
                        <h3><label for="title">Bookmark Feature Settings</label></h3>
                        <div class="inside">
                            <table width="100%" border="0" cellspacing="0" cellpadding="6">
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Enable Bookmarking Feature:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_enable_bookmark" type="checkbox"  <?php 
    $enable_bookmark = $emember_config->getValue('eMember_enable_bookmark');
    echo $enable_bookmark ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>Allows your members to be able to bookmark your posts and pages for easy access later. Learn <a href="http://www.tipsandtricks-hq.com/wordpress-membership/?p=99" target="_blank">how to use the bookmarking feature</a>.</i><br />
                                    </td>
                                </tr>
                                <tr>
                                    <td width="25%" align="left"></td>
                                    <td align="left"><input name="eMember_enable_bookmark_for_loggedin" type="checkbox"  <?php 
    $enable_bookmark_loggedin = $emember_config->getValue('eMember_enable_bookmark_for_loggedin');
    echo $enable_bookmark_loggedin ? 'checked="checked"' : '';
    ?>
 value="1"/> Show bookmark feature ONLY to members who are logged-in</td>
                                </tr>

                                <tr>
                                    <td width="25%" align="left"></td>
                                    <td align="left">Disable Bookmark Feature on:</td>
                                </tr>
                                <tr>
                                    <?php 
    $emember_disable_bookmark_by_page = (array) $emember_config->getValue('emember_disable_bookmark_by_page');
    ?>
                                    <td width="25%" align="left"></td>
                                    <td align="left"><input type="checkbox" name="emember_disable_bookmark_by_page[]" value="home" <?php 
    echo in_array('home', $emember_disable_bookmark_by_page) ? "checked='checked'" : "";
    ?>
  /> Home Page</td>
                                </tr>
                                <tr>
                                    <td width="25%" align="left"></td>
                                    <td align="left"><input type="checkbox" name="emember_disable_bookmark_by_page[]" value="category" <?php 
    echo in_array('category', $emember_disable_bookmark_by_page) ? "checked='checked'" : "";
    ?>
 /> Category Archives</td>
                                </tr>
                                <tr>
                                    <td width="25%" align="left"></td>
                                    <td align="left"><input type="checkbox" name="emember_disable_bookmark_by_page[]" value="search" <?php 
    echo in_array('search', $emember_disable_bookmark_by_page) ? "checked='checked'" : "";
    ?>
 /> Search Result</td>
                                </tr>
                                <tr>
                                    <td width="25%" align="left"></td>
                                    <td align="left">Disable Bookmark Feature by Post Type:</td>
                                </tr>
                                <?php 
    $emember_disable_bookmark_by_type = $emember_config->getValue('emember_disable_bookmark_by_type');
    ?>
                                <?php 
    $emember_disable_bookmark_by_type = empty($emember_disable_bookmark_by_type) ? array() : $emember_disable_bookmark_by_type;
    ?>
                                <?php 
    foreach (get_post_types('', 'objects', array('public' => true)) as $key => $value) {
        ?>
                                    <?php 
        $ischecked = in_array($key, $emember_disable_bookmark_by_type) ? "checked='checked'" : "";
        ?>
                                    <tr>
                                        <td width="25%" align="left"></td>
                                        <td align="left"><input type="checkbox" name="emember_disable_bookmark_by_type[]" value="<?php 
        echo $key;
        ?>
" <?php 
        echo $ischecked;
        ?>
 /><?php 
        echo " " . $value->label;
        ?>
</td>
                                    </tr>
                                <?php 
    }
    ?>
                            </table>
                        </div>
                    </div>
                    <!-- <div class="title"><label for="title">WordPress User Integration Settings (Only use this if you want to integrate the member's of WP eMember with your WordPress users)</label></div> -->
                    <div class="postbox">
                        <h3><label for="title">WordPress User Integration Settings (Only use this if you want to integrate the member's of WP eMember with your WordPress users)</label></h3>
                        <div class="inside">
                            <table width="100%" border="0" cellspacing="0" cellpadding="6">
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Automatically Create Wordpress User:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_create_wp_user" type="checkbox"  <?php 
    $create_wp_user = $emember_config->getValue('eMember_create_wp_user');
    echo $create_wp_user ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>If checked it will automatically create a new wordpress user with the same credentials when a new member is registered with eMember.</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Automatically log into Wordpress:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_signin_wp_user" type="checkbox"  <?php 
    $create_signin_user = $emember_config->getValue('eMember_signin_wp_user');
    echo $create_signin_user ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>If checked members will be automatically logged into wordpress when they log in using the eMember login.</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Automatically log into eMember:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_signin_emem_user" type="checkbox"  <?php 
    $create_signin_user = $emember_config->getValue('eMember_signin_emem_user');
    echo $create_signin_user ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>If checked members will be automatically logged into eMember when they log in using the wordpress login system.</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Preserve WordPress User Role:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_preserve_wp_user_role" type="checkbox"  <?php 
    $eMember_preserve_wp_user_role = $emember_config->getValue('eMember_preserve_wp_user_role');
    echo $eMember_preserve_wp_user_role ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>If checked the WP User's role will not be updated according to the role value set in the membership level. By default the WP User role is set to the value you specify in the Default WordPress Role field of a membership level.</i><br /><br />
                                    </td>
                                </tr>

                            </table>
                        </div>
                    </div>

                    <div class="postbox">
                        <h3><label for="title">Site Wide/Domain Level Page Protection Settings</label></h3>
                        <div class="inside">
                            <strong><i>Read the <a href="http://www.tipsandtricks-hq.com/wordpress-membership/?p=342" target="_blank">site wide protection feature</a> documentation before using this feature.</i></strong><br /><br />
                            <table width="100%" border="0" cellspacing="0" cellpadding="6">
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Site Wide Page Protection:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_enable_domain_lockdown" type="radio"  <?php 
    $eMember_enable_domain_lockdown = $emember_config->getValue('eMember_enable_domain_lockdown');
    echo $eMember_enable_domain_lockdown == 0 ? 'checked="checked"' : '';
    ?>
 value="0"/>
                                        <strong>Disabled</strong><br /><i>This feature is disabled by default. Select one of the following radio boxes to use this feature.</i>
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left"></td>
                                    <td align="left">
                                        <input name="eMember_enable_domain_lockdown" type="radio"  <?php 
    $eMember_enable_domain_lockdown = $emember_config->getValue('eMember_enable_domain_lockdown');
    echo $eMember_enable_domain_lockdown == 1 ? 'checked="checked"' : '';
    ?>
 value="1"/>
                                        <strong>Enable Site Wide/Domain Level Lockdown</strong>
                                        <br /><i>When enabled it will restrict anonymous visitor access to your site (the site won't load unless the visitor logs in as a member). The only pages the visitors will be able to access on the site when not logged in are the "Join Us" and "Registration" pages.</i>
                                        <br /><br />
                                        <textarea name="eMember_domain_lockdown_exclude_url" id="eMember_domain_lockdown_exclude_url" cols="83" rows="3"><?php 
    echo $emember_config->getValue('eMember_domain_lockdown_exclude_url');
    ?>
</textarea>
                                        <br/>
                                        <i>Add URLs (separated by comma) that will be excluded from the lockdown when domain level lockdown feature is enabled. Anonymous visitors will be able to access the above page(s) without having to log into the site. Leave empty if you do not want to exclude any specific URL.</i><br /><br />

                                        <textarea name="eMember_domain_lockdown_exclude_url_pattern" id="eMember_domain_lockdown_exclude_url_pattern" cols="83" rows="3"><?php 
    echo $emember_config->getValue('eMember_domain_lockdown_exclude_url_pattern');
    ?>
</textarea>
                                        <br/>
                                        <i>Add URL patterns (example, <code>/category1/sub-category/</code>) separated by comma that will be excluded from the lockdown when this feature is enabled. The URL pattern exclusion is helpful when you want to exclude all the URLs that have a certain pattern/keyword in it. Leave empty if you do not want to exclude any specific URL pattern.</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left"></td>
                                    <td align="left">
                                        <input name="eMember_enable_domain_lockdown" type="radio"  <?php 
    $eMember_enable_domain_lockdown = $emember_config->getValue('eMember_enable_domain_lockdown');
    echo $eMember_enable_domain_lockdown == 2 ? 'checked="checked"' : '';
    ?>
 value="2"/>
                                        <strong>Enable Specific Page Lockdown</strong>
                                        <br /><i>When enabled it will lockdown the following pages and restrict anonymous visitor access to the following pages (the pages won't load unless the visitor logs in as a member).</i>
                                        <br /><br />
                                        <textarea name="eMember_domain_lockdown_include_url" id="eMember_domain_lockdown_include_url" cols="83" rows="3"><?php 
    echo $emember_config->getValue('eMember_domain_lockdown_include_url');
    ?>
</textarea>
                                        <br/>
                                        <i>Add URLs (separated by comma) that will be locked down when you enable the "Specific Page Lockdown" option.</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left"><strong>Auto Redirect to a Specific Page (optional)</strong></td>
                                    <td align="left">
                                        <input name="eMember_domain_lockdown_alt2popup" type="text" size="100" id="eMember_domain_lockdown_alt2popup" value="<?php 
    echo $emember_config->getValue('eMember_domain_lockdown_alt2popup');
    ?>
"/>
                                        <br /><i>Specify the URL of a page that you want the users to be automatically redirected to when they land on a sitewide lockdown protected page.</i>
                                    </td>
                                </tr>
                            </table>
                        </div>
                    </div>

                    <div class="postbox">
                        <h3><label for="title">WP Affiliate Platform Account Creation Settings</label></h3> <!-- added -->
                        <div class="inside">
                            <strong><i>Only use this option if you are using the WP eMember plugin together with the <a href="http://www.tipsandtricks-hq.com/?p=1474" target="_blank">WP Affiliate Platform</a> plugin.</i></strong><br /><br />
                            <table width="100%" border="0" cellspacing="0" cellpadding="6">
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Automatically Create Affiliate Account:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_auto_affiliate_account" type="checkbox"  <?php 
    $eMember_auto_affiliate_account = $emember_config->getValue('eMember_auto_affiliate_account');
    echo $eMember_auto_affiliate_account ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>If checked an affiliate account will automatically be created with the same login credentials for each member when they register with the eMember plugin.</i><br /><br />
                                    </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Automatically Log into Affiliate Account:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_auto_affiliate_account_login" type="checkbox"  <?php 
    $eMember_auto_affiliate_account_login = $emember_config->getValue('eMember_auto_affiliate_account_login');
    echo $eMember_auto_affiliate_account_login ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>If checked a member will automatically be logged into the affiliate account when logging into eMember.</i><br /><br />
                                    </td>
                                </tr>

                                <tr valign="top"><td width="25%" align="left">
                                        <strong>Limit Account Creation to Particular Levels Only</strong>
                                    </td><td align="left">
                                        <input name="wp_eMember_affiliate_account_restriction_list" type="text" size="50" value="<?php 
    echo $emember_config->getValue('wp_eMember_affiliate_account_restriction_list');
    ?>
"/>
                                        <br /><i>Only use this field if you want to restrict the affiliate account creation for particular membership levels only. Specify the membership level IDs separated by comma (,) in the above field (for example: 1,2,3).</i><br />
                                    </td></tr>

                            </table>
                        </div>
                    </div>

                    <div class="postbox">
                        <h3><label for="title">Additional Integration Options</label></h3>
                        <div class="inside">

                            <br />
                            <strong><i>(Only use this section if you have been instructed to do so from one of the <a href="http://www.tipsandtricks-hq.com/wordpress-membership/" target="_blank">documentation pages</a>)</i></strong>
                            <br /><br />

                            <table width="100%" border="0" cellspacing="0" cellpadding="6">
                                <tr valign="top"><td width="25%" align="left">
                                        <strong>Enable Remote POST:</strong>
                                    </td><td align="left">
                                        <input type="checkbox" name="wp_eMember_enable_remote_post" <?php 
    $wp_eMember_enable_remote_post = $emember_config->getValue('wp_eMember_enable_remote_post');
    echo $wp_eMember_enable_remote_post ? 'checked="checked"' : '';
    ?>
 value="1" />
                                        <br /><i>Check this box if you want to be able to create or cancel member account by sending a HTTP POST or GET request to a URL.</i><br /><br />
                                    </td></tr>

                                <tr valign="top"><td width="25%" align="left">
                                        <strong>Secret Word:</strong>
                                    </td><td align="left">
                                        <input name="wp_eMember_secret_word_for_post" type="text" size="30" value="<?php 
    echo $emember_config->getValue('wp_eMember_secret_word_for_post');
    ?>
"/>
                                        <br /><i>This secret word will be used to verify any request sent to the POST URL. You can change this code to something random.</i><br />
                                    </td></tr>
                            </table>
                        </div></div>

                    <div class="postbox">
                        <h3><label for="title">Testing and Debugging Settings</label></h3>
                        <div class="inside">
                            <strong><i>You do not need to use these options unless you are testing the plugin or trying to troubleshoot and issue.</i></strong><br /><br />

                            <table width="100%" border="0" cellspacing="0" cellpadding="6">
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Enable Debug:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_enable_debug" type="checkbox"  <?php 
    $eMember_enable_debug = $emember_config->getValue('eMember_enable_debug');
    echo $eMember_enable_debug ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>If checked, debug output will be written to log files. This is useful for troubleshooting failures.</i><br /><br />
                                        You can check the debug log file by clicking on the link below (The log files can be viewed using any text editor):
                                <li style="margin-left:15px;"><a href="<?php 
    echo WP_EMEMBER_URL . "/eMember_debug.log";
    ?>
" target="_blank">eMember_debug.log file</a></li>
                                <li style="margin-left:15px;"><a href="<?php 
    echo WP_EMEMBER_URL . "/eMember_debug_cronjob.log";
    ?>
" target="_blank">eMember_debug_cronjob.log file</a></li>
                                <li style="margin-left:15px;"><a href="<?php 
    echo WP_EMEMBER_URL . "/ipn/ipn_handle_debug_eMember.log";
    ?>
" target="_blank">ipn_handle_debug_eMember.log file</a></li>
                                <div class="submit"><input type="submit" name="wp_emember_reset_logfile" style="font-weight:bold; color:red" value="Reset Debug Log Files" class="button" /><p class="description">All of the above debug log files are "reset" and timestamped with a log file reset message.</p></div>
                                </td>
                                </tr>
                                <tr valign="top">
                                    <td width="25%" align="left">
                                        <strong>Enable Sandbox Testing:</strong>
                                    </td>
                                    <td align="left">
                                        <input name="eMember_enable_sandbox" type="checkbox"  <?php 
    $eMember_enable_sandbox = $emember_config->getValue('eMember_enable_sandbox');
    echo $eMember_enable_sandbox ? 'checked="checked"' : '';
    ?>
 value="1"/><br />
                                        <i>If checked the plugin will run in Sandbox/Testing mode (eg. <a href="http://www.tipsandtricks-hq.com/?p=2880" target="_blank">PayPal Sandbox</a>). Useful for testing.</i><br /><br />
                                    </td>
                                </tr>
                            </table>
                        </div>
                    </div>

                    <div class="submit">
                        <input type="submit" name="info_update" class="button-primary" value="<?php 
    _e('Update options');
    ?>
 &raquo;" />
                    </div>
                    <!-- </div> -->
                </div>
            </div>
        </div>
    </form>
    <script type="text/javascript">
        jQuery(document).ready(function($) {
            $('#emember_fancy_login_v').change(function() {
                $('#eMember_enable_fancy_login').val($(this).val());
            }).val($('#eMember_enable_fancy_login').val());
            $('#eMember_enable_secondary_membership').change(function() {
                var sub = $('#eMember_secondary_membership_migrate');
                if (this.checked) {
                    sub.removeAttr('disabled');
                } else {
                    sub.attr('disabled', 'disabled').removeAttr('checked');
                }
            }).change();
        });
    </script>
    <?php 
}
function eMember_level_specific_autoresponder_signup($membership_level_id, $firstname, $lastname, $emailaddress)
{
    eMember_log_debug('Performing membership level specific autoresponder signup if specified.', true);
    $membership_level_resultset = dbAccess::find(WP_EMEMBER_MEMBERSHIP_LEVEL_TABLE, " id='" . $membership_level_id . "'");
    $list_name = trim($membership_level_resultset->campaign_name);
    // Autoresponder Sign up
    if (!empty($membership_level_resultset->campaign_name)) {
        $emember_config = Emember_Config::getInstance();
        eMember_log_debug('List name specified for this membership level is: ' . $list_name, true);
        if ($emember_config->getValue('eMember_enable_aweber_int') == 1) {
            $from_address = $emember_config->getValue('senders_email_address');
            $senders_email = eMember_get_string_between($from_address, "<", ">");
            if (empty($senders_email)) {
                $senders_email = $from_address;
            }
            $cust_name = $firstname . ' ' . $lastname;
            if ($emember_config->getValue('eMember_use_new_aweber_integration') == '1') {
                eMember_aweber_new_signup_user($list_name, $firstname, $lastname, $emailaddress);
            } else {
                eMember_log_debug('AWeber list to signup to:' . $list_name, true);
                eMember_send_aweber_mail($list_name, $senders_email, $cust_name, $emailaddress);
                eMember_log_debug('AWeber signup from email address used:' . $senders_email, true);
                eMember_log_debug('AWeber signup operation performed for:' . $emailaddress, true);
            }
        }
        if ($emember_config->getValue('eMember_use_mailchimp') == 1) {
            $api = eMember_get_chimp_api();
            eMember_log_debug('Mailchimp email address to signup:' . $emailaddress, true);
            eMember_log_debug('Mailchimp list to signup to:' . $list_name, true);
            $retval = eMember_mailchimp_subscribe($api, $list_name, $firstname, $lastname, $emailaddress);
            eMember_log_debug('Mailchimp signup operation performed. returned value:' . $retval, true);
        }
        if ($emember_config->getValue('eMember_use_getresponse') == 1) {
            eMember_log_debug('GetResponse email address to signup:' . $emailaddress, true);
            eMember_log_debug('GetResponse campaign to signup to:' . $list_name, true);
            $retval = eMember_getResponse_subscribe($list_name, $firstname, $lastname, $emailaddress);
            eMember_log_debug('GetResponse signup operation performed. returned value:' . $retval, true);
        }
        if ($emember_config->getValue('eMember_use_generic_autoresponder_integration') == '1') {
            eMember_log_debug('Generic autoresponder integration is being used.', true);
            $list_email_address = $list_name;
            $result = eMember_generic_autoresponder_signup($firstname, $lastname, $emailaddress, $list_email_address);
            eMember_log_debug('Generic autoresponder signup result: ' . $result, true);
        }
    }
    // API call for plugins extending the level specific autoresponder signup
    $signup_data = array('firstname' => $firstname, 'lastname' => $lastname, 'email' => $emailaddress, 'list_name' => $list_name);
    do_action('emember_level_specific_autoresponder_signup', $signup_data);
    eMember_log_debug('End of membership level specific autoresponder signup.', true);
}
Example #15
0
    //Check to make sure the new email is not taken already or blocked
    if (emember_wp_email_exists($fields['email']) || emember_email_exists($fields['email'])) {
        echo "Error!\n";
        echo "Email address already exists.";
        eMember_log_debug('Email address already used...', false);
        exit;
    }
    if (is_blocked_email($fields['email'])) {
        echo "Error!\n";
        echo "Email address entered is blocked.";
        eMember_log_debug("Blocked email address used. This request will fail.", false);
        exit;
    }
}
//Update the corresponding WP User object if needed
$resultset = dbAccess::find(WP_EMEMBER_MEMBERS_TABLE_NAME, ' member_id=' . $member_id);
$wp_user_id = username_exists($resultset->user_name);
if ($wp_user_id) {
    $wp_user_info = array();
    $wp_user_info['first_name'] = strip_tags(isset($_REQUEST['first_name']) ? $_REQUEST['first_name'] : "");
    $wp_user_info['last_name'] = strip_tags(isset($_REQUEST['last_name']) ? $_REQUEST['last_name'] : "");
    $wp_user_info['user_email'] = strip_tags(isset($_REQUEST['email']) ? $_REQUEST['email'] : "");
    $wp_user_info['ID'] = $wp_user_id;
    if (!empty($_REQUEST['password'])) {
        $wp_user_info['user_pass'] = $_REQUEST['password'];
    }
    wp_update_user($wp_user_info);
}
//Update the emember user profile with the provided data
if (count($fields) > 0) {
    $ret = dbAccess::update(WP_EMEMBER_MEMBERS_TABLE_NAME, ' member_id =' . $member_id, $fields);
Example #16
0
function emember_payment_gateway_settings_menu()
{
    echo '<div class="wrap">';
    echo '<div id="poststuff"><div id="post-body">';
    $emember_config = Emember_Config::getInstance();
    $paypal_ipn_url = WP_EMEMBER_URL . "/ipn/eMember_handle_paypal_ipn.php";
    if (isset($_POST['info_update_emem_cb'])) {
        $emember_config->setValue('eMember_cb_secret_key', trim($_POST["eMember_cb_secret_key"]));
        $emember_config->saveConfig();
        echo '<div id="message" class="updated fade"><p><strong>';
        echo 'Clickbank Options Updated!';
        echo '</strong></p></div>';
    }
    if (isset($_POST['emem_generate_av_code'])) {
        $mem_level = trim($_POST['emember_paypal_av_member_level']);
        $membership_level_resultset = dbAccess::find(WP_EMEMBER_MEMBERSHIP_LEVEL_TABLE, " id='" . $mem_level . "'");
        if ($membership_level_resultset) {
            $pp_av_code = 'notify_url=' . $paypal_ipn_url . '<br />' . 'custom=subsc_ref=' . $mem_level;
            echo '<div id="message" class="updated fade"><p>';
            echo '<strong>Paste the code below in the "Add advanced variables" field of your PayPal button for membership level ' . $mem_level . '</strong>';
            echo '<br /><code>' . $pp_av_code . '</code>';
            echo '</p></div>';
        } else {
            echo '<div id="message" class="updated fade"><p><strong>';
            echo 'Error! The membership level ID (' . $mem_level . ') you specified is incorrect. Please check this value again.';
            echo '</strong></p></div>';
        }
    }
    ?>
    <div class="postbox">
        <h3><label for="title">WP eStore Integration Settings</label></h3>
        <div class="inside">

            <p><strong>
                    Please read the <a href="http://www.tipsandtricks-hq.com/wordpress-membership/?p=60" target="_blank">WP eStore Integration Instruction</a> to integrate eMember with WP eStore's purchase button.
                </strong></p>

        </div></div>

    <div class="postbox">
        <h3><label for="title">Direct PayPal Integration Settings</label></h3>
        <div class="inside">

            <p><strong>
                    Please read the <a href="http://www.tipsandtricks-hq.com/wordpress-membership/?p=146" target="_blank">Direct PayPal Button Integration Instruction</a> to integrate eMember directly with a PayPal button.
                </strong></p>

            <table width="100%" border="0" cellspacing="0" cellpadding="6">
                <tr valign="top"><td width="25%" align="left">
                        PayPal IPN (Instant Payment Notification) URL Value:
                    </td><td align="left">
                        <code><?php 
    echo $paypal_ipn_url;
    ?>
</code>
                        <br /><br /><i>You will need to use the above URL as the "IPN handling script URL" value in your your PayPal button.</i><br /><br />
                    </td></tr>
            </table>

            <strong>Generate the "Advanced Variables" Code for your PayPal button</strong>
            <br />
            <form method="post" action="<?php 
    echo $_SERVER["REQUEST_URI"];
    ?>
">
                Enter the Membership Level ID
                <input name="emember_paypal_av_member_level" type="text" size="4" value="" />
                <input type="submit" name="emem_generate_av_code" class="button-primary" value="Generate Code" />
            </form>

        </div></div>

    <div class="postbox">
        <h3><label for="title">ClickBank Integration Settings</label></h3>
        <div class="inside">

            <form method="post" action="<?php 
    echo $_SERVER["REQUEST_URI"];
    ?>
">
                <input type="hidden" name="info_update_emem_cb" id="info_update_emem_cb" value="true" />

                <p><strong>
                        Please read the <a href="http://www.tipsandtricks-hq.com/wordpress-membership/?p=470" target="_blank">ClickBank Integration Instruction</a> to integrate eMember with a ClickBank button.
                    </strong></p>

                <table width="100%" border="0" cellspacing="0" cellpadding="6">
                    <tr valign="top"><td width="25%" align="left">
                            ClickBank Secret Key:
                        </td><td align="left">
                            <input name="eMember_cb_secret_key" type="text" size="50" value="<?php 
    echo $emember_config->getValue('eMember_cb_secret_key');
    ?>
"/>
                            <br /><i>Enter your ClickBank secret key. You can configure your secret key from the <code>"Account Settings -> My Site -> Advanced Tools"</code> section of your ClickBank account.</i><br /><br />
                        </td></tr>

                    <tr valign="top"><td width="25%" align="left">
                            ClickBank Instant Notification URL Value:
                        </td><td align="left">
                            <code><?php 
    echo WP_EMEMBER_URL . "/ipn/eMember_handle_clickbank_ipn.php";
    ?>
</code>
                            <br /><br /><i>Enter the above URL in your your ClickBank account's "Instant Notification URL" field (just below the secret key). You can find it in the <code>"Account Settings -> My Site -> Advanced Tools"</code> section of your ClickBank account.</i><br /><br />
                        </td></tr>
                </table>

                <div class="submit">
                    <input type="submit" name="info_update_emem_cb" class="button-primary" value="<?php 
    _e('Save Clickbank options');
    ?>
 &raquo;" />
                </div>
            </form>
        </div></div>

    <?php 
    echo '</div></div>';
    echo '</div>';
}
Example #17
0
function emember_load_membership_form()
{
    if (!current_user_can('manage_options')) {
        die("Access Forbidden");
    }
    global $wpdb;
    $id = strip_tags($_POST['id']);
    $subscription_period = "";
    $subscription_unit = "";
    $fixed_date = "";
    if (empty($id)) {
        $role = "subscriber";
        $name = "";
        $loginredirect = "";
        $campaign_name = "";
        $expire = 'noexpire';
        $allpages = 'checked="checked"';
        $allcategories = 'checked="checked"';
        $allposts = 'checked="checked"';
        $allcomments = 'checked="checked"';
        $allattachments = 'checked="checked"';
        $allcustomposts = 'checked="checked"';
    } else {
        $level = dbAccess::find(WP_EMEMBER_MEMBERSHIP_LEVEL_TABLE, " id = '" . esc_sql($id) . " ' ");
        $role = $level->role;
        $name = htmlspecialchars($level->alias);
        $loginredirect = $level->loginredirect_page;
        $campaign_name = $level->campaign_name;
        if (empty($level->subscription_period) && empty($level->subscription_unit)) {
            $expire = 'noexpire';
        } else {
            if (empty($level->subscription_period)) {
                $expire = 'fixed_date';
                $fixed_date = $level->subscription_unit;
            } else {
                $expire = 'interval';
                $subscription_period = $level->subscription_period;
                $subscription_unit = $level->subscription_unit;
            }
        }
        $allpages = ($level->permissions & 8) === 8 ? 'checked="checked"' : "";
        $allcategories = ($level->permissions & 1) === 1 ? 'checked="checked"' : "";
        $allposts = ($level->permissions & 4) === 4 ? 'checked="checked"' : "";
        $allcomments = ($level->permissions & 2) === 2 ? 'checked="checked"' : "";
        $allattachments = ($level->permissions & 16) === 16 ? 'checked="checked"' : "";
        $allcustomposts = ($level->permissions & 32) === 32 ? 'checked="checked"' : "";
    }
    require_once 'views/add_membership_level_view.php';
    exit(0);
}
function wp_eMember_admin_functions_general_menu()
{
    $emember_config = Emember_Config::getInstance();
    if (isset($_POST['generate_registration_link'])) {
        $errorMsg = "";
        $eMember_member_id = (string) $_POST["eMember_member_id"];
        $member_record = dbAccess::find(WP_EMEMBER_MEMBERS_TABLE_NAME, ' member_id=\'' . $eMember_member_id . '\'');
        if ($member_record) {
            $md5_code = md5($member_record->reg_code);
            $separator = '?';
            $url = get_option('eMember_registration_page');
            if (empty($url)) {
                $errorMsg .= "Error! You need to specify the registration URL in the pages/forms settings menu of this plugin.";
            } else {
                if (strpos($url, '?') !== false) {
                    $separator = '&';
                }
                $reg_url = $url . $separator . 'member_id=' . $eMember_member_id . '&code=' . $md5_code;
            }
        } else {
            $errorMsg .= "Error! Could not find the member ID in the database. Please double check the member ID value.";
        }
        $message = "";
        if (!empty($errorMsg)) {
            $message = $errorMsg;
        } else {
            $message = 'Registration Link Generated! Your customer can complete his/her membership registration by going to the generated link.';
        }
        echo '<div id="message" class="updated fade"><p><strong>';
        echo $message;
        echo '</strong></p></div>';
    }
    if (isset($_POST['generate_and_send_registration_link'])) {
        $errorMsg = "";
        $eMember_member_id = (string) $_POST["eMember_member_id"];
        $member_record = dbAccess::find(WP_EMEMBER_MEMBERS_TABLE_NAME, ' member_id=\'' . $eMember_member_id . '\'');
        if ($member_record) {
            $md5_code = md5($member_record->reg_code);
            $separator = '?';
            $url = get_option('eMember_registration_page');
            if (empty($url)) {
                $errorMsg .= "<br />You need to specify the registration URL in the pages settings menu of this plugin.";
            } else {
                if (strpos($url, '?') !== false) {
                    $separator = '&';
                }
                $reg_url = $url . $separator . 'member_id=' . $eMember_member_id . '&code=' . $md5_code;
            }
            $email = $member_record->email;
            $subject = get_option('eMember_email_subject');
            $body = get_option('eMember_email_body');
            $from_address = get_option('senders_email_address');
            $tags = array("{first_name}", "{last_name}", "{reg_link}");
            $vals = array($member_record->first_name, $member_record->last_name, $reg_url);
            $email_body = str_replace($tags, $vals, $body);
            $headers = 'From: ' . $from_address . "\r\n";
            wp_mail($email, $subject, $email_body, $headers);
        } else {
            $errorMsg .= "<br />Could not find the member ID in the database";
        }
        $message = "";
        if (!empty($errorMsg)) {
            $message = $errorMsg;
        } else {
            $message = "Member registration completion email successfully sent to:" . $email;
        }
        echo '<div id="message" class="updated fade"><p><strong>';
        echo $message;
        echo '</strong></p></div>';
    }
    if (isset($_POST['generate_and_send_registration_link_bulk'])) {
        $errorMsg = "";
        global $wpdb;
        $query = "SELECT member_id,reg_code,first_name,last_name FROM " . WP_EMEMBER_MEMBERS_TABLE_NAME . " WHERE user_name = ''";
        $member_records = $wpdb->get_results($query);
        if ($member_records) {
            foreach ($member_records as $member_record) {
                $md5_code = md5($member_record->reg_code);
                $separator = '?';
                $url = get_option('eMember_registration_page');
                if (empty($url)) {
                    $errorMsg .= "<br />You need to specify the registration URL in the pages settings menu of this plugin.";
                    break;
                } else {
                    if (strpos($url, '?') !== false) {
                        $separator = '&';
                    }
                    $reg_url = $url . $separator . 'member_id=' . $member_record->member_id . '&code=' . $md5_code;
                }
                $email = $member_record->email;
                $subject = get_option('eMember_email_subject');
                $body = get_option('eMember_email_body');
                $from_address = get_option('senders_email_address');
                $tags = array("{first_name}", "{last_name}", "{reg_link}");
                $vals = array($member_record->first_name, $member_record->last_name, $reg_url);
                $email_body = str_replace($tags, $vals, $body);
                $headers = 'From: ' . $from_address . "\r\n";
                wp_mail($email, $subject, $email_body, $headers);
            }
        }
        $message = "";
        if (!empty($errorMsg)) {
            $message = $errorMsg;
        } else {
            $message = "Member registration completion email successfully sent.";
        }
        echo '<div id="message" class="updated fade"><p><strong>';
        echo $message;
        echo '</strong></p></div>';
    }
    if (isset($_POST['emem_to_wp'])) {
        global $wpdb;
        $member_table = WP_EMEMBER_MEMBERS_TABLE_NAME;
        $ret_member_db = $wpdb->get_results("SELECT * FROM {$member_table} ", OBJECT);
        foreach ($ret_member_db as $emember) {
            $emember->user_name = trim($emember->user_name);
            if (empty($emember->user_name)) {
                continue;
            }
            if (strtolower($emember->user_name) === "admin") {
                continue;
            }
            if (!username_exists($emember->user_name)) {
                $role_names = array(1 => 'Administrator', 2 => 'Editor', 3 => 'Author', 4 => 'Contributor', 5 => 'Subscriber');
                $membership_level_resultset = dbAccess::find(WP_EMEMBER_MEMBERSHIP_LEVEL_TABLE, " id='" . $emember->membership_level . "'");
                $wp_user_info = array();
                $wp_user_info['user_nicename'] = implode('-', explode(' ', $emember->user_name));
                $wp_user_info['display_name'] = $emember->user_name;
                $wp_user_info['nickname'] = $emember->user_name;
                $wp_user_info['first_name'] = $emember->first_name;
                $wp_user_info['last_name'] = $emember->last_name;
                $wp_user_info['role'] = $role_names[$membership_level_resultset->role];
                $wp_user_info['user_registered'] = date('Y-m-d H:i:s');
                //$wp_user_id = wp_create_user($emember->user_name, 'changeme', $emember->email);
                $wp_user_id = eMember_wp_create_user($emember->user_name, 'changeme', $emember->email);
                $wp_user_info['ID'] = $wp_user_id;
                wp_update_user($wp_user_info);
                //$wpdb->query("UPDATE  $wpdb->users set user_pass = \'" . $emember->password . '\' WHERE ID = ' . $wp_user_id);
                $user_info = get_userdata($wp_user_id);
                $user_cap = is_array($user_info->wp_capabilities) ? array_keys($user_info->wp_capabilities) : array();
                if (!in_array('administrator', $user_cap)) {
                    update_wp_user_Role($wp_user_id, $membership_level_resultset->role);
                }
            }
        }
        echo '<div id="message" class="updated fade"><p>WordPress user account creation complete!</p></div>';
    }
    if (isset($_POST['emem_when_wp'])) {
        $emember_config->setValue('eMember_enable_emem_when_wp', $_POST['eMember_enable_emem_when_wp']);
        $emember_config->setValue('eMember_emem_when_wp_default_level', $_POST['eMember_emem_when_wp_default_level']);
        $emember_config->setValue('eMember_emem_when_wp_default_acstatus', $_POST['eMember_emem_when_wp_default_acstatus']);
        $emember_config->saveConfig();
        echo '<div id="message" class="updated fade"><p>Auto Member Account Creation Settings Saved!</p></div>';
    }
    if (isset($_POST['emember_management_permission_update'])) {
        $emember_config->setValue('emember_management_permission', $_POST['emember_management_permission']);
        $emember_config->saveConfig();
        echo '<div id="message" class="updated fade"><p><strong>';
        echo 'Management permission setting updated!';
        echo '</strong></p></div>';
    }
    ?>

            <div class="postbox">
                <h3><label for="title">Generate a Registration Completion link</label></h3>
                <div class="inside">
                    You can manually generate a registration completion link here and give it to your customer if they have missed the email that was automatically sent out to them after the payment.<br />
                    <form method="post" action="<?php 
    echo $_SERVER["REQUEST_URI"];
    ?>
">

                        <table width="100%" border="0" cellspacing="0" cellpadding="6">
                            <tr valign="top"><td width="25%" align="right">
                                    <strong>Member ID: </strong>
                                </td><td align="left">
                                    <input name="eMember_member_id" type="text" size="5" value="<?php 
    echo isset($eMember_member_id) ? $eMember_member_id : "";
    ?>
" />
                                    <br /><i>(i) Enter the member ID (you can get the member ID from the members menu).</i><br /><br />
                                </td></tr>

                            <tr valign="top"><td width="25%" align="right">
                                </td><td align="left">
                                    <input type="submit" name="generate_registration_link" value="<?php 
    _e('Generate Link');
    ?>
 &raquo;" />
                                    <br /><i>(ii) Hit the "Generate Link" button.</i><br /><br />
                                </td></tr>
                            <tr valign="top"><td width="25%" align="right">
                                    <strong>Registration Link: </strong>
                                </td><td align="left">
                                    <textarea name="wp_eStore_rego_link" rows="3" cols="80"><?php 
    echo isset($reg_url) ? $reg_url : "";
    ?>
</textarea>
                                    <br /><i>This is the registration completion link.</i><br />
                                </td></tr>
                        </table>
                    </form>
                </div></div>

            <div class="postbox">
                <h3><label for="title">Generate and Email the Registration Completion link</label></h3>
                <div class="inside">
                    You can generate a registration completion link and email it to your customer in one go. This can be useful if they have missed the email that was automatically sent out to them after the payment.<br />
                    <form method="post" action="<?php 
    echo $_SERVER["REQUEST_URI"];
    ?>
">

                        <table width="100%" border="0" cellspacing="0" cellpadding="6">
                            <tr valign="top"><td width="25%" align="right">
                                    <strong>Member ID: </strong>
                                </td><td align="left">
                                    <input name="eMember_member_id" type="text" size="5" value="<?php 
    echo isset($eMember_member_id) ? $eMember_member_id : "";
    ?>
" />
                                    <br /><i>(i) Enter the member ID (you can get the member ID from the members menu).</i><br /><br />
                                </td></tr>

                            <tr valign="top"><td width="25%" align="right">
                                </td><td align="left">
                                    <input type="submit" name="generate_and_send_registration_link" value="<?php 
    _e('Generate & Email Link');
    ?>
 &raquo;" />
                                    <br /><i>(ii) Hit the "Generate & Email Link" button.</i><br /><br />
                                </td></tr>

                        </table>
                    </form>
                </div></div>

            <div class="postbox">
                <h3><label for="title">Generate and Email the Registration Completion link (Bulk Mode)</label></h3>
                <div class="inside">

                    You can generate registration completion link and email it to all your members that are still waiting to complete the registration. This can be useful if they have missed the email that was automatically sent out to them after the payment.<br />
                    <form method="post" action="<?php 
    echo $_SERVER["REQUEST_URI"];
    ?>
">
                        <input type="submit" name="generate_and_send_registration_link_bulk" value="<?php 
    _e('Generate & Email Link in Bulk');
    ?>
 &raquo;" />
                        <br /><i>Hit the "Generate & Email Link in Bulk" button.</i><br /><br />
                    </form>
                </div></div>



            <div class="postbox">
                <h3><label for="title">Create WordPress User Account for the members that do not have one</label></h3>
                <div class="inside">
                    <strong>If you have a lot of eMember members that do not have a corresponding WordPress user account and for some reason you wanted to create WordPress user account for them then use this option.</strong>
                    <br /><br />
                    &raquo; When you use this option the plugin will create wordpress user accounts for every eMember user that does not have a corresponding WordPress account already.
                    <br />
                    &raquo; The WordPress user accounts will be created with the same details from eMember but the password will be set to "changeme" (The user will have to change the password to their liking).
                    <br />
                    &raquo; Why? The password is kept in the database using an one way encryption so nobody except the member knows what the real password is.
                    <br /><br />
                    <form method="post" action="<?php 
    echo $_SERVER["REQUEST_URI"];
    ?>
">
                        <input type="submit" name="emem_to_wp" value="<?php 
    _e('Create WP account for eMember users');
    ?>
 &raquo;" />
                    </form>
                </div></div>
            <div class="postbox">
                <h3><label for="title">Automatically Create eMember Account When a WordPress User Account is Created.</label></h3>
                <div class="inside">

                    <form method="post" action="<?php 
    echo $_SERVER["REQUEST_URI"];
    ?>
">
                        <table width="100%" border="0" cellspacing="0" cellpadding="6">

                            <tr valign="top"><td width="25%" align="right">
                                    <strong>Enable this Feature: </strong>
                                </td><td align="left">
                                    <input name="eMember_enable_emem_when_wp" type="checkbox" <?php 
    echo $emember_config->getValue('eMember_enable_emem_when_wp');
    ?>
 value="checked='checked'" />
                                    <br /><i>When this feature is enabled, an eMember account will be created for every WP User account that gets created on this site.</i><br />
                                </td></tr>

                            <tr valign="top"><td width="25%" align="right"><strong>Default Membership Level: </strong></td>
                                <td align="left">
                                    <select name="eMember_emem_when_wp_default_level">
                                        <?php 
    $all_levels = dbAccess::findAll(WP_EMEMBER_MEMBERSHIP_LEVEL_TABLE, ' id != 1 ', ' id DESC ');
    $selected_level = $emember_config->getValue('eMember_emem_when_wp_default_level');
    $selected_acstatus = $emember_config->getValue('eMember_emem_when_wp_default_acstatus');
    foreach ($all_levels as $level) {
        ?>
                                            <option <?php 
        echo $selected_level == $level->id ? "selected='selected'" : "";
        ?>
 value="<?php 
        echo $level->id;
        ?>
"><?php 
        echo $level->alias;
        ?>
</option>
                                        <?php 
    }
    ?>
                                    </select>
                                    <br /><i>When automatically creating a member account in the background, the membership level will be set to the one you specify above.</i>
                                </td></tr>

                            <tr valign="top"><td width="25%" align="right"><strong>Default Account Status: </strong></td>
                                <td align="left">
                                    <select name="eMember_emem_when_wp_default_acstatus">
                                        <option <?php 
    echo $selected_acstatus == 'active' ? "selected='selected'" : "";
    ?>
 value="active">Active</option>
                                        <option <?php 
    echo $selected_acstatus == 'inactive' ? "selected='selected'" : "";
    ?>
 value="inactive">Inactive</option>
                                        <option <?php 
    echo $selected_acstatus == 'pending' ? "selected='selected'" : "";
    ?>
 value="pending">Pending</option>
                                        <option <?php 
    echo $selected_acstatus == 'expired' ? "selected='selected'" : "";
    ?>
 value="expired">Expired</option>
                                    </select>
                                    <br /><i>The account status will be set to the one specified above.</i>
                                </td></tr>
                        </table>
                        <input type="submit" name="emem_when_wp" value="Save Settings &raquo;" />
                    </form>
                </div></div>

            <div class="postbox">
                <h3><label for="title">eMember Admin Dashboard Access Permission</label></h3>
                <div class="inside">
                    <p>
                        eMember's admin dashboard is accessible to admin users only (just like any other plugin).
                        You can allow users with other WP role to access the eMember admin dashboard by selecting a value below.
                        <br /><br />
                        <strong>If don't know what this is for then don't change the following value.</strong>
                    </p>
                    <?php 
    $selected_permission = $emember_config->getValue('emember_management_permission');
    ?>
                    <form method="post" action="<?php 
    echo $_SERVER["REQUEST_URI"];
    ?>
">
                        <select name="emember_management_permission">
                            <option <?php 
    echo $selected_permission == 'edit_themes' ? "selected='selected'" : "";
    ?>
 value="edit_themes">Admin</option>
                            <option <?php 
    echo $selected_permission == 'edit_pages' ? "selected='selected'" : "";
    ?>
 value="edit_pages">Editor</option>
                            <option <?php 
    echo $selected_permission == 'edit_published_posts' ? "selected='selected'" : "";
    ?>
 value="edit_published_posts">Author</option>
                            <option <?php 
    echo $selected_permission == 'edit_posts' ? "selected='selected'" : "";
    ?>
 value="edit_posts">Contributor</option>
                        </select>
                        <input type="submit" name="emember_management_permission_update" value="Save Permission &raquo" />
                    </form>
                </div></div>
            <?php 
}
Example #19
0
 private function check_constraints()
 {
     $config = Emember_Config::getInstance();
     if (empty($this->userInfo)) {
         return false;
     }
     //store last access location and time in members table
     dbAccess::update(WP_EMEMBER_MEMBERS_TABLE_NAME, 'member_id=' . $this->userInfo->member_id, array('last_accessed_from_ip' => get_real_ip_addr(), 'last_accessed' => current_time('mysql', 1)));
     $valid = true;
     if ($this->userInfo->account_state == 'inactive') {
         do_action("emember_account_login_status_inactive", $this->userInfo->member_id);
         $this->lastStatusMsg = EMEMBER_ACCOUNT_INACTIVE;
         self::setSavedMessage('eMember_login_status_msg', $this->lastStatusMsg);
         $this->errorCode = 3;
         self::setSavedMessage('eMember_login_status_code', $this->errorCode);
         $valid = false;
     }
     if ($this->userInfo->account_state == 'pending') {
         do_action("emember_account_login_status_pending", $this->userInfo->member_id);
         $this->lastStatusMsg = EMEMBER_ACCOUNT_PENDING;
         $valid = false;
         self::setSavedMessage('eMember_login_status_msg', $this->lastStatusMsg);
         $this->errorCode = 3;
         self::setSavedMessage('eMember_login_status_code', $this->errorCode);
     }
     if (!$valid) {
         //set_transient( 'eMember_login_status_msg', "", 3600 );
         //$this->lastStatusMsg = EMEMBER_NOT_LOGGED_IN;
         $this->isLoggedIn = false;
         $this->userInfo = null;
         return false;
     }
     //@todo: check if account expired and update db if it did.
     //@todo: update ip last access time
     $customUserInfo = dbAccess::find(WP_EMEMBER_MEMBERS_META_TABLE, 'user_id=' . $this->userInfo->member_id . ' AND meta_key=\'custom_field\'');
     $customUserInfo = isset($customUserInfo->meta_value) ? $customUserInfo->meta_value : "";
     $this->customUserInfo = unserialize($customUserInfo);
     $this->permitted = new Emember_User_Permission($this->userInfo);
     if (wp_emember_is_subscription_expired($this->userInfo, $this->permitted->primary_level)) {
         $status = 'expired';
         dbAccess::update(WP_EMEMBER_MEMBERS_TABLE_NAME, 'member_id=' . $this->userInfo->member_id, array('account_state' => $status));
         $this->userInfo->account_state = 'expired';
         //do_action("emember_account_$status", $this->userInfo->member_id);//TODO - remove this
     }
     $allow_expired_account = $config->getValue('eMember_allow_expired_account');
     if ($this->userInfo->account_state == 'expired') {
         do_action("emember_account_login_status_expired", $this->userInfo->member_id);
         if (!$allow_expired_account) {
             $this->errorCode = 8;
             $valid = false;
             $this->lastStatusMsg = EMEMBER_SUBSCRIPTION_EXPIRED_MESSAGE;
             self::setSavedMessage('eMember_login_status_msg', $this->lastStatusMsg);
             self::setSavedMessage('eMember_login_status_code', $this->errorCode);
             $this->isLoggedIn = false;
             return false;
         }
     }
     $this->lastStatusMsg = EMEMBER_LOGGED_IN_AS . $this->userInfo->user_name;
     self::setSavedMessage('eMember_login_status_msg', $this->lastStatusMsg);
     $this->errorCode = 4;
     self::setSavedMessage('eMember_login_status_code', $this->errorCode);
     $this->isLoggedIn = true;
     return true;
 }