PK śqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Dir : /home/trave494/familymovies.us/wp-content/plugins/indeed-membership-pro/ |
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 IP: 209.182.202.254 |
Dir : /home/trave494/familymovies.us/wp-content/plugins/indeed-membership-pro/utilities.php |
<?php function ihc_post_metas($post_id=null, $return_name=FALSE){ /* * @param int, bool * @return array */ $arr = array( 'ihc_mb_type' => 'show', 'ihc_mb_who' => '', 'ihc_mb_block_type' => 'redirect', 'ihc_mb_redirect_to' => -1, 'ihc_replace_content' => '', //DRIP CONTENT 'ihc_drip_content' => 0, 'ihc_drip_start_type' => 1, 'ihc_drip_end_type' => 1, 'ihc_drip_start_numeric_type' => 'days', 'ihc_drip_start_numeric_value' => '', 'ihc_drip_end_numeric_type' => 'days', 'ihc_drip_end_numeric_value' => '', 'ihc_drip_start_certain_date' => '', 'ihc_drip_end_certain_date' => '', ); $arr = apply_filters( 'ihc_filter_post_meta', $arr ); if($return_name==TRUE){ return $arr; } foreach($arr as $k=>$v){ $data = get_post_meta($post_id, $k, true); if( $data!==FALSE && $data!='' ){ $arr[$k] = $data; } } return $arr; } function ihc_get_all_pages(){ /* * @param none * @return array */ $arr = array(); $args = array( 'sort_order' => 'ASC', 'sort_column' => 'post_title', 'hierarchical' => 1, 'child_of' => 0, 'parent' => -1, 'number' => '', 'offset' => 0, 'post_type' => 'page', 'post_status' => 'publish' ); $pages = get_pages($args); if (isset($pages) && count($pages)>0){ foreach ($pages as $page){ if ($page->post_title==''){ $page->post_title = '(no title)'; } $arr[$page->ID] = $page->post_title; } } return $arr; } function ihc_locker_meta_keys(){ /* * @param none * @return array */ //meta keys for ihc_lockers $arr = array( 'ihc_locker_name' => 'Untitled Locker', 'ihc_locker_custom_content' => '<h2>This content is locked</h2> Login To Unlock The Content!', 'ihc_locker_custom_css' => '', 'ihc_locker_template' => '', 'ihc_locker_login_template' => '', 'ihc_locker_login_form' => 1, 'ihc_locker_additional_links' => 1, 'ihc_locker_display_sm' => 0, ); return $arr; } /** * @param string, string|bool * @return mixed */ function ihc_return_meta($name=null, $id=false){ $data = get_option($name); if ($data!==FALSE){ if($data && isset($data[$id])){ return $data[$id]; } return $data; } else return FALSE; } function ihc_return_meta_arr($type=null, $only_name=false, $return_default=false){ /* * @param string, bool, bool * @return array */ //all metas if (!defined('IHC_URL')){ define('IHC_URL', plugin_dir_url(__FILE__)); } switch ($type){ case 'payment': $arr = array( 'ihc_currency' => 'USD', 'ihc_currency_position' => 'right', 'ihc_num_of_decimals' => 2, 'ihc_decimals_separator' => '.', 'ihc_thousands_separator' => ',', 'ihc_custom_currency_code' => '', 'ihc_payment_set' => 'predefined', 'ihc_payment_selected' => 'bank_transfer', 'ihc_payment_logs_on' => 0, 'ihc_payment_workflow' => 'new', 'ihc_payment_merchant_business_name' => '', 'ihc_payment_merchant_business_address_1' => '', 'ihc_payment_merchant_business_address_2' => '', 'ihc_payment_merchant_business_country' => '', 'ihc_payment_merchant_business_city' => '', 'ihc_payment_merchant_business_state' => '', 'ihc_payment_merchant_business_postcode' => '', 'ihc_payment_merchant_business_vat' => '', ); break; case 'payment_paypal': $arr = array( 'ihc_paypal_email' => '', 'ihc_paypal_sandbox' => 0, 'ihc_paypal_return_page' => -1, 'ihc_paypal_return_page_on_cancel' => -1, 'ihc_paypal_status' => 0, 'ihc_paypal_label' => 'PayPal', 'ihc_paypal_select_order' => 1, /*developer */ 'ihc_paypal_short_description' => '', /*end developer*/ 'ihc_paypal_merchant_account_id' => '', 'ihc_paypapl_locale_code' => 'en_US', ); break; case 'payment_stripe': $arr = array( 'ihc_stripe_secret_key' => '', 'ihc_stripe_publishable_key' => '', 'ihc_stripe_status' => 0, 'ihc_stripe_label' => 'Stripe', 'ihc_stripe_select_order' => 2, 'ihc_stripe_short_description' => '', 'ihc_stripe_locale_code' => 'en', 'ihc_stripe_popup_image' => '', 'ihc_stripe_bttn_value' => '', ); break; case 'payment_authorize': $arr = array( 'ihc_authorize_login_id' => '', 'ihc_authorize_transaction_key' => '', 'ihc_authorize_sandbox' => 0, 'ihc_authorize_status' => 0, 'ihc_authorize_label' => 'Authorize', 'ihc_authorize_select_order' => 3, 'ihc_authorize_short_description' => '' ); break; case 'payment_twocheckout': $arr = array( 'ihc_twocheckout_status' => 0, 'ihc_twocheckout_sandbox' => 0, 'ihc_twocheckout_api_user' => '', 'ihc_twocheckout_api_pass' => '', 'ihc_twocheckout_private_key' => '', 'ihc_twocheckout_account_number' => '', 'ihc_twocheckout_secret_word' => '', 'ihc_twocheckout_return_url' => -1, 'ihc_twocheckout_label' => '2Checkout', 'ihc_twocheckout_select_order' => 4, 'ihc_twocheckout_short_description' => '' ); break; case 'payment_bank_transfer': $arr = array( 'ihc_bank_transfer_status' => 1, 'ihc_bank_transfer_message' => ' <p>Please proceed the bank transfer payment for: {currency}{amount}</p> <p><strong>Payment Details:</strong> Subscription {level_name} for {username} with Identification: {user_id}_{level_id}</p> <br/> <strong>Bank Details:</strong><br/> IBAN:xxxxxxxxxxxxxxxxxxxx<br/> Bank NAME<br/>', 'ihc_bank_transfer_label' => 'Bank Transfer', 'ihc_bank_transfer_select_order' => 5, 'ihc_bank_transfer_short_description' => '' ); break; case 'payment_braintree': $arr = array( 'ihc_braintree_status' => 0, 'ihc_braintree_sandbox' => 0, 'ihc_braintree_merchant_id' => '', 'ihc_braintree_public_key' => '', 'ihc_braintree_private_key' => '', 'ihc_braintree_label' => 'Braintree', 'ihc_braintree_select_order' => 6, 'ihc_braintree_short_description' => '' ); break; case 'payment_mollie': $arr = array( 'ihc_mollie_status' => 0, 'ihc_mollie_api_key' => '', 'ihc_mollie_label' => 'Mollie', 'ihc_mollie_select_order' => 8, 'ihc_mollie_short_description' => '', 'ihc_mollie_return_page' => -1, ); break; case 'payment_paypal_express_checkout': $arr = array( 'ihc_paypal_express_checkout_status' => 0, 'ihc_paypal_express_checkout_label' => 'PayPal Express Checkout', 'ihc_paypal_express_checkout_signature' => '', 'ihc_paypal_express_checkout_user' => '', 'ihc_paypal_express_checkout_password' => '', 'ihc_paypal_express_checkout_sandbox' => 0, 'ihc_paypal_express_checkout_select_order' => 9, 'ihc_paypal_express_short_description' => '', 'ihc_paypal_express_return_page' => -1, 'ihc_paypal_express_return_page_on_cancel' => -1, ); break; case 'payment_pagseguro': $arr = array( 'ihc_pagseguro_status' => 0, 'ihc_pagseguro_label' => 'Pagseguro', 'ihc_pagseguro_email' => '', 'ihc_pagseguro_token' => '', 'ihc_pagseguro_select_order' => 9, 'ihc_pagseguro_short_description' => '', 'ihc_pagseguro_sandbox' => 0, ); break; case 'payment_stripe_checkout_v2': $arr = array( 'ihc_stripe_checkout_v2_secret_key' => '', 'ihc_stripe_checkout_v2_publishable_key' => '', 'ihc_stripe_checkout_v2_status' => 0, 'ihc_stripe_checkout_v2_select_order' => 11, 'ihc_stripe_checkout_v2_short_description' => '', 'ihc_stripe_checkout_v2_locale_code' => 'en', 'ihc_stripe_checkout_v2_label' => 'Stripe Checkout', 'ihc_stripe_checkout_v2_success_page' => -1, 'ihc_stripe_checkout_v2_cancel_page' => -1, 'ihc_stripe_checkout_v2_use_user_email' => 0, ); break; case 'payment_stripe_connect': $arr = array( 'ihc_stripe_connect_status' => 0, 'ihc_stripe_connect_payment_request' => 0, 'ihc_stripe_connect_saved_cards' => 0, 'ihc_stripe_connect_live_mode' => 0, 'ihc_stripe_connect_publishable_key' => '', 'ihc_stripe_connect_client_secret' => '', 'ihc_stripe_connect_account_id' => '', 'ihc_stripe_connect_test_publishable_key' => '', 'ihc_stripe_connect_test_client_secret' => '', 'ihc_stripe_connect_test_account_id' => '', 'ihc_stripe_connect_select_order' => 1, 'ihc_stripe_connect_short_description' => '', 'ihc_stripe_connect_descriptor' => '', 'ihc_stripe_connect_locale_code' => 'auto', 'ihc_stripe_connect_label' => 'Credit Card', ); break; case 'login': $arr = array( 'ihc_login_remember_me' => 1, 'ihc_login_register' => 1, 'ihc_login_pass_lost' => 1, 'ihc_login_template' => 'ihc-login-template-11', 'ihc_login_custom_css' => '', 'ihc_login_show_sm' => 0, 'ihc_login_show_recaptcha' => 0, ); break; case 'login-messages': $arr = array( 'ihc_login_succes' => 'Welcome to our Website!', 'ihc_login_pending' => 'Your account has not been approved. Please retry later', 'ihc_social_login_failed' => 'You are not registered with this social network. Please register first!', 'ihc_login_error' => 'Invalid email address or password entered', 'ihc_reset_msg_pass_err' => 'Invalid email address or username entered', 'ihc_reset_msg_pass_ok' => 'A new password has been sent to your email address', 'ihc_login_error_email_pending' => 'The email address has not been confirmed yet', 'ihc_login_error_on_captcha' => 'Error with Captcha', 'ihc_login_error_ajax' => 'Please fill out all mandatory fields', ); break; case 'general-defaults': $arr = array( //default pages 'ihc_general_login_default_page' => '', 'ihc_general_register_default_page'=>'', 'ihc_general_lost_pass_page' => '', 'ihc_general_logout_page' => '', 'ihc_general_user_page' => '', 'ihc_general_tos_page' => '', 'ihc_subscription_plan_page' => '', 'ihc_checkout_page' => '', 'ihc_thank_you_page' => '', 'ihc_general_register_view_user' => '', //redirects 'ihc_general_redirect_default_page' => '', 'ihc_general_logout_redirect' => '', 'ihc_general_register_redirect' => '', 'ihc_general_login_redirect' => '', 'ihc_general_password_redirect' => '', /// prevent listing hidden post, pages 'ihc_listing_show_hidden_post_pages' => 0, ); break; case 'general-captcha': //recapcha $arr = array( 'ihc_recaptcha_version' => 'v2', 'ihc_recaptcha_public' => '', 'ihc_recaptcha_private' => '', 'ihc_recaptcha_public_v3' => '', 'ihc_recaptcha_private_v3' => '', ); break; case 'general-subscription': $arr = array( 'ihc_level_template' => 'ihc_level_template_5', 'ihc_select_level_custom_css' => '', ); break; case 'general-msg': $arr = array( 'ihc_general_update_msg' => 'Successfully Updated!', ); break; case 'register': $arr = array( 'ihc_register_template' => 'ihc-register-9', 'ihc_register_admin_notify' => 1, 'ihc_register_pass_min_length' => 6, 'ihc_register_pass_options' => 1, 'ihc_register_new_user_level' => -1,//'none' 'ihc_register_new_user_role' => 'subscriber', 'ihc_register_custom_css' => '', 'ihc_register_terms_c' => 'Accept our Terms&Conditions', 'ihc_subscription_type' => 'subscription_plan', 'ihc_register_opt-in' => 0, 'ihc_register_opt-in-type' => 'email_list', 'ihc_register_show_level_price' => 1, 'ihc_register_auto_login' => 0, 'ihc_register_double_email_verification' => 0, 'ihc_automatically_switch_role' => 0, 'ihc_automatically_new_role' => 'subscriber', 'ihc_register_button_label' => '', ); break; case 'register-msg': $arr = array( //messages 'ihc_register_username_taken_msg' => 'Username has already been taken', 'ihc_register_error_username_msg' => 'Invalid Username', 'ihc_register_email_is_taken_msg' => 'Email address has already been taken', 'ihc_register_invalid_email_msg' => 'You must have a valid email address', 'ihc_register_emails_not_match_msg' => 'Email Addresses do not match', 'ihc_register_pass_not_match_msg' => 'Password do not match', 'ihc_register_pass_letter_digits_msg' => 'Password must contain both letters and numbers', 'ihc_register_pass_let_dig_up_let_msg' => 'Password must include characters, numbers, and at least one uppercase letter', 'ihc_register_pass_min_char_msg' => 'Password must include minimum {X} characters', 'ihc_register_pending_user_msg' => 'Your Account has not been approved yet. Please retry later', 'ihc_register_err_req_fields' => 'Please fill out all mandatory fields', 'ihc_register_err_recaptcha' => 'Error with Captcha', 'ihc_register_err_tos' => 'Please agree to our Terms & Conditions', 'ihc_register_success_meg' => '<h4>Successfully Register!</h4> <br/>', 'ihc_register_update_msg' => 'Successfully Updated!', 'ihc_register_unique_value_exists' => 'This value is already exist.', ); break; case 'register-custom-fields': $arr = array( 'ihc_user_fields' => ihc_native_user_field(), ); break; case 'opt_in': $arr = array( //aweber 'ihc_aweber_auth_code' => '', 'ihc_aweber_list' => '', 'ihc_aweber_consumer_key' => '', 'ihc_aweber_consumer_secret' => '', 'ihc_aweber_acces_key' => '', 'ihc_aweber_acces_secret' => '', //mailchimp 'ihc_mailchimp_api' => '', 'ihc_mailchimp_id_list' => '', //get response 'ihc_getResponse_api_key' => '', 'ihc_getResponse_token' => '', //campaign monitor 'ihc_cm_api_key' => '', 'ihc_cm_list_id' => '', //icontact 'ihc_icontact_user' => '', 'ihc_icontact_appid' => '', 'ihc_icontact_pass' => '', 'ihc_icontact_list_id' => '', //constant contact 'ihc_cc_user' => '', 'ihc_cc_pass' => '', 'ihc_cc_list' => '', //Wysija Contact 'ihc_wysija_list_id' => '', //MyMail 'ihc_mymail_list_id' => '', //Mad Mimi 'ihc_madmimi_username' => '', 'ihc_madmimi_apikey' => '', 'ihc_madmimi_listname' => '', //indeed email list 'ihc_email_list' => '', // active campaign 'ihc_active_campaign_apiurl' => '', 'ihc_active_campaign_apikey' => '', 'ihc_active_campaign_listId' => '', ); break; case 'notifications': $arr = array( 'ihc_notification_email_from' => '', 'ihc_notification_before_time' => 5, 'ihc_notification_before_time_second' => 3, 'ihc_notification_before_time_third' => 1, 'ihc_notification_payment_due_time_interval' => 1, 'ihc_notification_card_expiry_time_interval' => 1, 'ihc_notification_name' => '', 'ihc_notification_email_addresses' => '', ); break; case 'extra_settings': $arr = array( 'ihc_grace_period' => '', 'ihc_debug_payments_db' => '', 'ihc_upload_extensions' => 'txt,doc,pdf,jpg,jpeg,png,gif,mp3,zip', 'ihc_upload_max_size' => 5, 'ihc_avatar_max_size' => 1, ); break; case 'account_page': $arr = array( 'ihc_ap_theme' => 'ihc-ap-theme-3', 'ihc_ap_edit_show_avatar' => 1, 'ihc_ap_edit_show_level' => 1, 'ihc_ap_tabs' => 'overview,profile,subscription,logout,help,transactions,orders,social', 'ihc_ap_welcome_msg' => '<span class="iump-user-page-mess-special">Hello</span> <span class="iump-user-page-mess-special"> {last_name} {first_name}</span>, <span class="iump-user-page-mess">You are logged as</span><span class="iump-user-page-mess-special"> {username}</span> <div class="iump-user-page-mess"><span>{flag}</span>Member since {user_registered}</div> ', 'ihc_account_page_custom_css' => '', 'ihc_ap_social_plus_message' => '', 'ihc_ap_overview_menu_label' => 'Dashboard', 'ihc_ap_overview_title' => 'Dashboard', 'ihc_ap_overview_msg' => '<p>Welcome to our Membership platform. Check for valuable content and sign to our Subscriptions.</p><p>From Membership dashboard you may manage <strong>your Subscriptions</strong>, check <strong>recent orders</strong> or edit your <strong>account details</strong>.</p>', 'ihc_ap_overview_icon_class' => '', 'ihc_ap_overview_icon_code' => 'f015', 'ihc_ap_profile_menu_label' => 'Profile Details', 'ihc_ap_profile_title' => 'Edit your Account', 'ihc_ap_profile_msg' => '', 'ihc_ap_profile_icon_class' => '', 'ihc_ap_profile_icon_code' => 'f007', 'ihc_ap_subscription_menu_label' => 'Subscriptions', 'ihc_ap_subscription_title' => '', 'ihc_ap_subscription_msg' => '', 'ihc_ap_subscription_icon_class' => '', 'ihc_ap_subscription_icon_code' => 'f0a1', 'ihc_ap_subscription_table_enable' => 1, 'ihc_ap_subscription_plan_enable' => 1, 'ihc_ap_social_menu_label' => 'Social Plus', 'ihc_ap_social_title' => 'Social Plus', 'ihc_ap_social_icon_class' => '', 'ihc_ap_social_icon_code' => 'f0e6', 'ihc_ap_social_msg' => '', 'ihc_ap_transactions_menu_label' => 'Transactions', 'ihc_ap_transactions_title' => 'Transactions', 'ihc_ap_transactions_msg' => '', 'ihc_ap_transactions_icon_class' => '', 'ihc_ap_transactions_icon_code' => 'f155', 'ihc_ap_orders_menu_label' => 'Orders', 'ihc_ap_orders_title' => 'Orders', 'ihc_ap_orders_msg' => '', 'ihc_ap_orders_icon_class' => '', 'ihc_ap_orders_icon_code' => 'f0d6', 'ihc_ap_membeship_gifts_menu_label' => 'Membership Gifts', 'ihc_ap_membeship_gifts_title' => 'Membership Gifts', 'ihc_ap_membeship_gifts_msg' => '[ihc-list-gifts]', 'ihc_ap_membeship_gifts_icon_class' => '', 'ihc_ap_membeship_gifts_icon_code' => 'f06b', 'ihc_ap_membership_cards_menu_label' => 'Membership Cards', 'ihc_ap_membership_cards_title' => 'Membership Cards', 'ihc_ap_membership_cards_msg' => '[ihc-membership-card]', 'ihc_ap_membership_cards_icon_class' => '', 'ihc_ap_membership_cards_icon_code' => 'f022', 'ihc_ap_help_menu_label' => 'Help', 'ihc_ap_help_title' => 'Help', 'ihc_ap_help_msg' => 'If you have any questions or need help, please do not hesitate to contact us.', 'ihc_ap_help_icon_class' => '', 'ihc_ap_help_icon_code' => 'f059', 'ihc_ap_pushover_notifications_menu_label' => 'Pushover Notifications', 'ihc_ap_pushover_notifications_title' => 'Pushover Notifications', 'ihc_ap_pushover_notifications_msg' => '', 'ihc_ap_pushover_notifications_icon_class' => '', 'ihc_ap_pushover_notifications_icon_code' => 'f0f3', 'ihc_ap_logout_menu_label' => 'LogOut', 'ihc_ap_logout_icon_class' => '', 'ihc_ap_logout_icon_code' => 'f08b', 'ihc_ap_affiliate_icon_class' => '', 'ihc_ap_affiliate_icon_code' => 'f0e8', 'ihc_ap_user_sites_label' => 'Your Sites', 'ihc_ap_user_sites_title' => 'Your Sites', 'ihc_ap_user_sites_icon_code' => 'f0e8', 'ihc_ap_user_sites_icon_class' => '', 'ihc_ap_user_sites_msg' => '', 'ihc_ap_footer_msg' => '', 'ihc_ap_top_background_image' => '', 'ihc_ap_edit_background' => 1, 'ihc_ap_top_template' => 'ihc-ap-top-theme-4', 'ihc_ap_edit_show_level' => 1, 'ihc_account_page_orders_show_table' => 1, 'ihc_account_page_pushover_show_form' => 1, 'ihc_account_page_user_sites_show_table' => 1, 'ihc_account_page_social_plus_show_buttons' => 1, 'ihc_account_page_profile_show_form' => 1, ); break; case 'fb': $arr = array( 'ihc_fb_app_id' => '', 'ihc_fb_app_secret' => '', 'ihc_fb_status' => 0, ); break; case 'tw': $arr = array( 'ihc_tw_app_key' => '', 'ihc_tw_app_secret' => '', 'ihc_tw_status' => 0, ); break; case 'in': $arr = array( 'ihc_in_app_key' => '', 'ihc_in_app_secret' => '', 'ihc_in_status' => 0, ); break; case 'tbr': $arr = array( 'ihc_tbr_app_key' => '', 'ihc_tbr_app_secret' => '', 'ihc_tbr_status' => 0, ); break; case 'ig': $arr = array( 'ihc_ig_app_id' => '', 'ihc_ig_app_secret' => '', 'ihc_ig_status' => 0, ); break; case 'vk': $arr = array( 'ihc_vk_app_id' => '', 'ihc_vk_app_secret' => '', 'ihc_vk_status' => 0, ); break; case 'goo': $arr = array( 'ihc_goo_app_id' => '', 'ihc_goo_app_secret' => '', 'ihc_goo_status' => 0, ); break; case 'social_media': $arr = array( "ihc_sm_template" => "ihc-sm-template-1", "ihc_sm_custom_css" => "", "ihc_sm_show_label" => 1, 'ihc_sm_top_content' => '<div class="ihc-top-social-login"> - OR - </div>', 'ihc_sm_bottom_content' => '', ); break; case 'double_email_verification': $arr = array( 'ihc_double_email_expire_time' => -1, 'ihc_double_email_redirect_success' => '', 'ihc_double_email_redirect_error' => '', 'ihc_double_email_delete_user_not_verified' => -1, ); break; /* case 'licensing': $arr = array( 'ihc_license_set' => 0, 'ihc_envato_code' => '', ); break; */ case 'listing_users': $arr = array( 'ihc_listing_users_custom_css' => '', 'ihc_listing_users_responsive_small' => 1, 'ihc_listing_users_responsive_medium' => 2, 'ihc_listing_users_responsive_large' => 0, 'ihc_listing_users_target_blank' => 0, ); break; case 'listing_users_inside_page': $arr = array( 'ihc_listing_users_inside_page_content' => '<div class="iump-user-page-avatar"> <img src="{AVATAR_HREF}" /> </div> <div class="ihc-account-page-top-mess"> <p><span class="iump-user-page-name"> {first_name} {last_name}</span>,</p> <p><span class="iump-user-page-mess">Username:</span><span class="iump-user-page-mess-special"> {username}</span> </p> <p><span class="iump-user-page-mess">and his/her awesome e-mail address is : <strong>{user_email}</strong></span></p> {IHC_SOCIAL_MEDIA_LINKS} </div> <div class="iump-clear"></div>', 'ihc_listing_users_inside_page_custom_css' => '', 'ihc_listing_users_inside_page_type' => 'basic', 'ihc_listing_users_inside_page_show_avatar' => 1, 'ihc_listing_users_inside_page_show_level' => 1, 'ihc_listing_users_inside_page_show_banner' => 1, 'ihc_listing_users_inside_page_show_since' => 1, 'ihc_listing_users_inside_page_show_name' => 1, 'ihc_listing_users_inside_page_show_username' => 1, 'ihc_listing_users_inside_page_show_email' => 1, 'ihc_listing_users_inside_page_show_website' => 1, 'ihc_listing_users_inside_page_show_flag' => 1, 'ihc_listing_users_inside_page_show_custom_fields' => '', 'ihc_listing_users_inside_page_extra_custom_content' => '', 'ihc_listing_users_inside_page_color_scheme' => '', 'ihc_listing_users_inside_page_template' => 'template-1', 'ihc_listing_users_inside_page_banner_href' => '', ); break; case 'affiliate_options': $arr = array( 'ihc_ap_show_aff_tab' => 0, 'ihc_ap_aff_msg' => '[uap-user-become-affiliate]', ); break; case 'ihc_taxes_settings': $arr = array( 'ihc_enable_taxes' => 0, 'ihc_show_taxes' => 0, 'ihc_default_tax_label' => '', 'ihc_default_tax_value' => 0, ); break; case 'admin_workflow': $arr = array( 'ihc_admin_workflow_dashboard_notifications' => 1, 'ihc_debug_payments_db' => '', 'ihc_order_prefix_code' => 'IUMP', 'ihc_keep_data_after_delete' => 0, 'ihc_wp_login_custom_css' => 1, 'ihc_wp_login_logo_image' => '', ); break; case 'public_workflow': $arr = array( 'ihc_listing_show_hidden_post_pages' => 0, 'ihc_grace_period' => '', 'ihc_use_gravatar' => 1, 'ihc_use_buddypress_avatar' => 0, 'ihc_email_blacklist' => '', 'ihc_default_country' => 'US', 'ihc_pretty_links' => 0 ); break; case 'security': $arr = array( 'ihc_security_allow_search_engines' => 0, 'ihc_security_username' => '', 'ihc_email_blacklist' => '', 'ihc_security_block_username_message' => '', 'ihc_security_rename_wpadmin' => 0, 'ihc_security_rename_wpadmin_name' => '', 'ihc_security_restrict_everything' => 0, 'ihc_security_restrict_everything_except' => '', ); break; case 'ihc_woo': $arr = array( 'ihc_woo_account_page_enable' => 0, 'ihc_woo_account_page_name' => '', 'ihc_woo_account_page_menu_position' => 5, ); break; case 'prorate_subscription': $arr = array( 'ihc_prorate_subscription_enabled' => 0, 'ihc_prorate_subscription_reset_billing_period' => 1, 'ihc_prorate_show_details_on_checkout' => 0, 'ihc_prorate_button_label' => 'Change Plan', ); break; case 'ihc_bp': $arr = array( 'ihc_bp_account_page_enable' => 0, 'ihc_bp_account_page_name' => '', 'ihc_bp_account_page_position' => 5, ); break; case 'ihc_membership_card': $arr = array( 'ihc_membership_card_enable' => 0, 'ihc_membership_card_background_color' => '', 'ihc-membership-card-settings-image-type' => 1, 'ihc_membership_card_image' => IHC_URL . 'assets/images/default-logo.png', 'ihc_membership_card_size' => 'ihc-membership-card-medium', 'ihc_membership_card_template' => 'ihc-membership-card-2', 'ihc_membership_member_since_enable' => 1, 'ihc_membership_member_since_label' => esc_html__('Member Since: ', 'ihc'), 'ihc_membership_member_level_label' => esc_html__('Membership: ', 'ihc'), 'ihc_membership_member_level_expire' => 1, 'ihc_membership_member_level_expire_label' => esc_html__('Expires On: ', 'ihc'), 'ihc_membership_member_show_uid' => 0, 'ihc_membership_member_show_extrafields' => '', 'ihc_membership_member_uid_label' => esc_html__('Member ID:', 'ihc'), 'ihc_membership_card_custom_css' => '', 'ihc_membership_card_exclude_levels' => '', ); break; case 'ihc_cheat_off': $arr = array( 'ihc_cheat_off_enable' => 0, 'ihc_cheat_off_cookie_time' => 365, 'ihc_cheat_off_redirect' => '', ); break; case 'ihc_invitation_code': $arr = array( 'ihc_invitation_code_enable' => 0, 'ihc_invitation_code_err_msg' => esc_html__('Your Invitation Code is wrong.', 'ihc'), ); break; case 'download_monitor_integration': $arr = array( 'ihc_download_monitor_enabled' => 0, 'ihc_download_monitor_limit_type' => 'files', 'ihc_download_monitor_values' => '', ); break; case 'register_lite': $arr = array( 'ihc_register_lite_enabled' => 0, 'ihc_register_lite_template' => 'ihc-register-3', 'ihc_register_lite_custom_css' => '', 'ihc_register_lite_opt_in' => 0, 'ihc_register_lite_opt_in_type' => '', 'ihc_register_lite_double_email_verification' => '', 'ihc_register_lite_user_role' => 'subscriber', 'ihc_register_lite_auto_login' => 1, 'ihc_register_lite_redirect' => '', ); break; case 'individual_page': $arr = array( 'ihc_individual_page_enabled' => 0, 'ihc_individual_page_parent' => -1, 'ihc_individual_page_default_content' => '', 'ihc_individual_page_title' => 'IUMP Individual Page: {username}', 'ihc_individual_page_slug_prefix' => 'iump_individual_page_', ); break; case 'level_restrict_payment': $arr = array( 'ihc_level_restrict_payment_enabled' => 0, 'ihc_levels_default_payments' => '', 'ihc_level_restrict_payment_values' => '', ); break; case 'level_subscription_plan_settings': $arr = array( 'ihc_level_subscription_plan_settings_enabled' => 0, 'ihc_level_subscription_plan_settings_restr_levels' => '', 'ihc_level_subscription_plan_settings_condt' => '', ); break; case 'gifts': $arr = array( 'ihc_gifts_enabled' => 0, 'ihc_gifts_user_get_multiple_on_recurring' => 0, ); break; case 'login_level_redirect': $arr = array( 'ihc_login_level_redirect_on' => 0, 'ihc_login_level_redirect_rules' => '', 'ihc_login_level_redirect_priority' => '', ); break; case 'register_redirects_by_level': $arr = array( 'ihc_register_redirects_by_level_enable' => 0, 'ihc_register_redirects_by_level_rules' => '', ); break; case 'wp_social_login': $arr = array( 'ihc_wp_social_login_on' => 0, 'ihc_wp_social_login_redirect_page' => '', 'ihc_wp_social_login_default_role' => '', 'ihc_wp_social_login_default_level' => '', ); break; case 'list_access_posts': $arr = array( 'ihc_list_access_posts_on' => 0, 'ihc_list_access_posts_title' => '', 'ihc_list_access_posts_item_details' => 'post_title', 'ihc_list_access_posts_custom_css' => '', 'ihc_list_access_posts_order_by' => 'post_date', 'ihc_list_access_posts_order_type' => 'DESC', 'ihc_list_access_posts_template' => '', 'ihc_list_access_posts_order_limit' => '', 'ihc_list_access_posts_per_page_value' => 25, 'ihc_list_access_posts_order_post_type' => 'post,page', 'ihc_list_access_posts_order_exclude_levels' => '', ); break; case 'invoices': $arr = array( 'ihc_invoices_on' => 0, 'ihc_invoices_only_completed_payments' => 0, 'ihc_invoices_company_field' => '<div><b>Your CompanyName LLC</b></div> <div>Unique Code: #99991239</div> <div>Company Address: Your Email Address</div>', 'ihc_invoices_bill_to' => '<div><b>Bill to</b></div> <div><b>Name: </b>{first_name} {last_name} </div> <div><b>E-mail: </b>{user_email} </div> <div><b>Address: </b>{CUSTOM_FIELD_addr1}</div>', 'ihc_invoices_title' => 'Your Order Invoice', 'ihc_invoices_template' => '', 'ihc_invoices_logo' => IHC_URL . 'assets/images/default-logo1.png', 'ihc_invoices_custom_css' => '', 'ihc_invoices_footer' => 'If you have any questions about this Invoice, please contact us!', ); break; case 'woo_payment': $arr = array( 'ihc_woo_payment_on' => 0, ); break; case 'badges': $arr = array( 'ihc_badges_on' => 0, 'ihc_badge_custom_css' => '', ); break; case 'login_security': $arr = array( 'ihc_login_security_on' => 0, 'ihc_login_security_allowed_retries' => 3, 'ihc_login_security_lockout_time' => 15, 'ihc_login_security_max_lockouts' => 3, 'ihc_login_security_extended_lockout_time' => 24, 'ihc_login_security_reset_retries' => 24, 'ihc_login_security_notify_admin' => 2, 'ihc_login_security_black_list' => '', 'ihc_login_security_lockout_attempt_message' => esc_html__('You have {number} login attempts remain.', 'ihc'), 'ihc_login_security_lockout_message' => esc_html__('Login Form is locked for 15 minutes.', 'ihc'), 'ihc_login_security_extended_lockout_message' => esc_html__('You have made too many failed login attempts. Login Form will be locked for 24 hours.', 'ihc'), ); break; case 'workflow_restrictions': $arr = array( 'ihc_workflow_restrictions_on' => 0, 'ihc_workflow_restrictions_timelimit' => 30, 'ihc_workflow_restrictions_post_views' => array(), 'ihc_workflow_restrictions_posts_created' => array(), 'ihc_workflow_restrictions_comments_created' => array(), ); break; case 'subscription_delay': $arr = array( 'ihc_subscription_delay_on' => 0, 'ihc_subscription_delay_time' => array(), 'ihc_subscription_delay_type' => array(), ); break; case 'level_dynamic_price': $arr = array( 'ihc_level_dynamic_price_on' => 0, 'ihc_level_dynamic_price_step' => 0.01, 'ihc_level_dynamic_price_levels_on' => 0, 'ihc_level_dynamic_price_levels_min' => array(), 'ihc_level_dynamic_price_levels_max' => array(), ); break; case 'user_reports': $arr = array('ihc_user_reports_enabled'=>0); break; case 'pushover': $arr = array( 'ihc_pushover_enabled' => 0, 'ihc_pushover_app_token' => '', 'ihc_pushover_admin_token' => '', 'ihc_pushover_url' => '', 'ihc_pushover_url_title' => '', 'ihc_pushover_sound' => 'bike', ); break; case 'account_page_menu': $arr = array( 'ihc_account_page_menu_enabled' => 0, 'ihc_account_page_menu_order' => array(), ); break; case 'mycred': $arr = array( 'ihc_mycred_enabled' => 0, ); break; case 'api': $arr = array( 'ihc_api_enabled' => 0, 'ihc_api_hash' => '', 'ihc_api_actions' => array( 'verify_user_level' => 1, 'user_approve' => 1, 'user_add_level' => 1, 'user_get_details' => 1, 'user_activate_level' => 1, 'get_user_field_value' => 1, 'get_user_levels' => 1, 'get_user_level_details' => 1, 'get_user_posts' => 1, 'search_users' => 1, 'list_levels' => 1, 'get_level_users' => 1, 'get_level_details' => 1, 'orders_listing' => 1, 'order_get_status' => 1, 'order_get_data' => 1, ), ); break; case 'woo_product_custom_prices': $arr = array( 'ihc_woo_product_custom_prices_enabled' => 1, 'ihc_woo_product_custom_prices_tiebreaker' => 'biggest', 'ihc_woo_product_custom_prices_like_discount' => 0, ); break; case 'drip_content_notifications': $arr = array( 'ihc_drip_content_notifications_enabled' => 0, 'ihc_drip_content_notifications_logs_enabled' => 0, 'ihc_drip_content_notifications_sleep' => 0, ); break; case 'user_sites': $arr = array( 'ihc_user_sites_enabled' => 0, 'ihc_user_sites_levels' => array(), ); break; case 'zapier': $arr = array( 'ihc_zapier_enabled' => 0, 'ihc_zapier_new_user_webhook' => '', 'ihc_zapier_new_user_enabled' => 0, 'ihc_zapier_new_order_webhook' => '', 'ihc_zapier_new_order_enabled' => 0, 'ihc_zapier_order_completed_webhook' => '', 'ihc_zapier_order_completed_enabled' => 0, ); break; case 'infusionSoft': $arr = array( 'ihc_infusionSoft_enabled' => 0, 'ihc_infusionSoft_id' => '', 'ihc_infusionSoft_api_key' => '', 'ihc_infusionSoft_levels_groups' => array(), ); break; case 'kissmetrics': $arr = array( 'ihc_kissmetrics_enabled' => 0, 'ihc_kissmetrics_apikey' => '', 'ihc_kissmetrics_events_user_register' => 0, 'ihc_kissmetrics_events_user_register_label' => esc_html__( 'Registered!', 'ihc' ), 'ihc_kissmetrics_events_user_get_level' => 0, 'ihc_kissmetrics_events_user_get_level_label' => esc_html__( 'User get Membership ', 'ihc' ) . '%level%', 'ihc_kissmetrics_events_user_finish_payment' => 0, 'ihc_kissmetrics_events_user_finish_payment_label' => esc_html__( 'User has finish the payment for Membership ', 'ihc' ) . '%level%', 'ihc_kissmetrics_events_user_login' => 0, 'ihc_kissmetrics_events_user_login_label' => esc_html__( 'User has login. ', 'ihc' ), 'ihc_kissmetrics_events_remove_user_level' => 0, 'ihc_kissmetrics_events_remove_user_level_label' => esc_html__( 'Membership ', 'ihc') . '%level%' . esc_html__( ' has been removed from this user.', 'ihc'), ); break; case 'direct_login': $arr = array( 'ihc_direct_login_enabled' => 0, ); break; case 'reason_for_cancel': $arr = array( 'ihc_reason_for_cancel_enabled' => 0, 'ihc_reason_for_cancel_resons' => "I have no time, The content of your website don't satisfy me" ); break; case 'weekly_summary_email': $arr = array( 'ihc_reason_for_weekly_email_enabled' => 0 ); break; case 'manage_subscription_table': $arr = [ 'ihc_show_renew_link' => 1, 'ihc_show_delete_link' => 1, 'ihc_show_cancel_link' => 1, 'ihc_show_pause_resume_link' => 0, 'ihc_show_finish_payment' => 1, 'ihc_show_plan_details_column' => 1, 'ihc_show_amount_column' => 1, 'ihc_show_payment_service_column' => 1, 'ihc_show_trial_period_column' => 1, 'ihc_show_grace_period_column' => 1, 'ihc_show_starts_on_column' => 1, 'ihc_show_expires_on_column' => 1, 'ihc_show_status_column' => 1, 'ihc_subscription_table_finish_payment_after' => 12, ]; break; case 'manage_order_table': $arr = [ 'ihc_show_order_memberships_column' => 1, 'ihc_show_total_amount_column' => 1, 'ihc_show_payment_method_column' => 1, 'ihc_show_date_column' => 1, 'ihc_show_coupon_column' => 1, 'ihc_show_transaction_column' => 1, 'ihc_show_invoice_column' => 1, 'ihc_show_order_status_column' => 1, 'ihc_show_taxes_column' => 1 ]; break; case 'checkout-settings': $arr = [ 'ihc_checkout_enable' => 1, 'ihc_checkout_inital' => 0, 'ihc_checkout_template' => 'ihc_checkout_template_1', 'ihc_checkout_column_structure' => 1, 'ihc_checkout_customer_information' => 0, 'ihc_checkout_customer_fields' => '', 'ihc_checkout_payment_section' => 1, 'ihc_checkout_payment_theme' => 'ihc-select-payment-theme-2', 'ihc_checkout_membership_price_details' => 1, 'ihc_checkout_dynamic_price' => 0, 'ihc_checkout_coupon' => 1, 'ihc_checkout_taxes_display_section' => 0, 'ihc_checkout_privacy_policy_option' => 0, 'ihc_checkout_privacy_policy_message' => 'Your personal data will be used to process your order, support your experience throughout this website, and for other purposes', 'ihc_checkout_avoid_free_membership' => 0, 'ihc_checkout_payment_method_position' => 0, 'ihc_checkout_custom_css' => '' ]; break; case 'checkout-messages': $arr = [ 'ihc_checkout_customer_title' => 'Customer Information', 'ihc_checkout_payment_title' => 'Payment Method', 'ihc_checkout_taxes_title' => 'Taxes', 'ihc_checkout_coupon_field_message' => 'If you have a coupon code, please apply it below', 'ihc_checkout_coupon_field_used' => 'Coupon', 'ihc_checkout_apply_button' => 'Apply', 'ihc_checkout_price_initial' => 'Initial Payment', 'ihc_checkout_price_then' => 'Then', 'ihc_checkout_price_fee' => 'Fee', 'ihc_checkout_price_free' => 'Free', 'ihc_checkout_price_discount' => 'Discount', 'ihc_checkout_price_every' => 'every', 'ihc_checkout_price_for' => 'for', 'ihc_checkout_dynamic_field_message' => 'Choose how much you wish to pay for it.', 'ihc_checkout_dynamic_price-set' => 'Chosen Price', 'ihc_checkout_dynamic_field_button' => 'Apply', 'ihc_checkout_subtotal_title' => 'Subtotal', 'ihc_checkout_purchase_button' => 'Complete Purchase', 'ihc_checkout_free_button' => 'Free Access', 'ihc_checkout_remove' => '[Remove]' ]; break; case 'profile-form-settings': $arr = [ 'ihc_profile_form_template' => 'ihc-register-9', 'ihc_profile_form_custom_css' => '' ]; break; case 'thank-you-page-settings': $arr = [ 'ihc_thank_you_message' => '<h5 class="primary">Thank you for your purchase!</h5> <p> </p><div><p><strong>Hello {customer_name},</strong></p> <p>This is a confirmation that we have just received your secure online payment ({amount}{currency}) through {order_payment_method} for <strong>{membership_name}</strong>.</p> <p>Your Order <strong>#{order_code}</strong> have been placed. Check your Inbox on <strong>{customer_email}</strong> for further details.</p> <p>Thank you for your trust.</p></div>', 'ihc_thank_you_error_message' => 'Sorry! Not enough information available.', 'ihc_thank_you_custom_css' => '' ]; break; default: // used for add-ons $arr = array(); break; } $arr = apply_filters( 'ihc_default_options_group_filter', $arr, $type ); // @description Settings group. @param list of settings (array), type of settings group (array) if ($return_default){ //return default values return $arr; } if (isset($arr)){ if ($only_name){ return $arr; } foreach ($arr as $k=>$v){ $data = get_option($k); if ($data!==FALSE){ $arr[$k] = $data; } else { add_option($k, $v); } } return $arr; } return FALSE; } function ihc_native_user_field(){ /* * @param none * @return array */ //arr[] = array('display_public_reg'=>'', 'display_public_ap'=>'', 'display_admin'=>'', 'name'=>'', 'label'=>'', 'type'=>'', 'native_wp' => '', 'req' => '' ); //order will be each key . ex: array( n=>array()) //arr[]['display'] 0 not show, 1 show, 2 show always cannot be removed from register form //arr['req'] 0 not, 1 require, 2 if is selected it will be automatically require $arr = array( array( 'display_admin'=>2, 'display_public_reg'=>2, 'display_public_ap'=>2, 'display_on_modal'=> 2, 'name'=>'user_login', 'label'=>'Username', 'type'=>'text', 'native_wp' => 1, 'req' => 1, 'sublevel' => '' ), array( 'display_admin'=>2, 'display_public_reg'=>2, 'display_public_ap'=>2, 'display_on_modal'=> 2, 'name'=>'user_email', 'label'=>'Email', 'type'=>'text', 'native_wp' => 1, 'req' => 1, 'sublevel' => '' ), array( 'display_admin'=>0, 'display_public_reg'=>0, 'display_public_ap'=>0, 'display_on_modal'=> 0, 'name'=>'confirm_email', 'label'=>'Confirm Email', 'type'=>'text', 'native_wp' => 0, 'req' => 2, 'sublevel' => '' ), array( 'display_admin'=>1, 'display_public_reg'=>1, 'display_public_ap'=>1, 'display_on_modal'=> 0, 'name'=>'first_name', 'label'=>'First Name', 'type'=>'text', 'native_wp' => 1, 'req' => 1, 'sublevel' => '' ), array( 'display_admin'=>1, 'display_public_reg'=>1, 'display_public_ap'=>1, 'display_on_modal'=> 0, 'name'=>'last_name', 'label'=>'Last Name', 'type'=>'text', 'native_wp' => 1, 'req' => 1, 'sublevel' => '' ), array( 'display_admin'=>0, 'display_public_reg'=>0, 'display_public_ap'=>0, 'display_on_modal'=> 0, 'name'=>'user_url', 'label'=>'Website', 'type'=>'text', 'native_wp' => 1, 'req' => 0, 'sublevel' => '' ), array( 'display_admin'=>1, 'display_public_reg'=>2, 'display_public_ap'=>1, 'display_on_modal'=> 1, 'name'=>'pass1', 'label'=>'Password', 'type'=>'password', 'native_wp' => 1, 'req' => 1, 'sublevel' => '' ), array( 'display_admin'=>1, 'display_public_reg'=>1, 'display_public_ap'=>1, 'display_on_modal'=> 0, 'name'=>'pass2', 'label'=>'Confirm Password', 'type'=>'password', 'native_wp' => 1, 'req' => 2, 'sublevel' => '' ), array( 'display_admin'=>0, 'display_public_reg'=>0, 'display_public_ap'=>0, 'display_on_modal'=> 0, 'name'=>'description', 'label'=>'Biographical Info', 'type'=>'textarea', 'native_wp' => 1, 'req' => 0, 'sublevel' => '' ), array( 'display_admin'=>0, 'display_public_reg'=>0, 'display_public_ap'=>0, 'display_on_modal'=> 0, 'name'=>'phone', 'label'=>'Phone', 'type'=>'number', 'native_wp' => 0, 'req' => 0, 'sublevel' => '' ), array( 'display_admin'=>0, 'display_public_reg'=>0, 'display_public_ap'=>0, 'display_on_modal'=> 0, 'name'=>'addr1', 'label'=>'Address 1', 'type'=>'textarea', 'native_wp' => 0, 'req' => 0, 'sublevel' => '' ), array( 'display_admin'=>0, 'display_public_reg'=>0, 'display_public_ap'=>0, 'display_on_modal'=> 0, 'name'=>'addr2', 'label'=>'Address 2', 'type'=>'textarea', 'native_wp' => 0, 'req' => 0, 'sublevel' => '' ), array( 'display_admin'=>0, 'display_public_reg'=>0, 'display_public_ap'=>0, 'display_on_modal'=> 0, 'name'=>'zip', 'label'=>'Zip', 'type'=>'text', 'native_wp' => 0, 'req' => 0, 'sublevel' => '' ), array( 'display_admin'=>0, 'display_public_reg'=>0, 'display_public_ap'=>0, 'display_on_modal'=> 0, 'name'=>'city', 'label'=>'City', 'type'=>'text', 'native_wp' => 0, 'req' => 0, 'sublevel' => '' ), array( 'display_admin'=>0, 'display_public_reg'=>0, 'display_public_ap'=>0, 'display_on_modal'=> 0, 'name'=>'thestate', 'label'=>'State', 'type'=>'text', 'native_wp' => 0, 'req' => 0, 'sublevel' => '' ), array( 'display_admin'=>0, 'display_public_reg'=>0, 'display_public_ap'=>0, 'display_on_modal'=> 0, 'name'=>'country', 'label'=>'Country', 'type'=>'text', 'native_wp' => 0, 'req' => 0, 'sublevel' => '' ), array( 'display_admin'=>0, 'display_public_reg'=>1, 'display_public_ap'=>0, 'display_on_modal'=> 0, 'name'=>'ihc_country', 'label'=>'Country', 'type'=>'ihc_country', 'native_wp' => 0, 'req' => 2, 'sublevel' => '' ), array( 'display_admin'=>0, 'display_public_reg'=>0, 'display_public_ap'=>0, 'display_on_modal'=> 0, 'name'=>'ihc_state', 'label'=>'State', 'type'=>'ihc_state', 'native_wp' => 0, 'req' => 2, 'sublevel' => '' ), array( 'display_admin'=>0, 'display_public_reg'=>1, 'display_public_ap'=>1, 'display_on_modal'=> 0, 'name'=>'ihc_avatar', 'label'=>'Avatar', 'type'=>'upload_image', 'native_wp' => 0, 'req' => 0, 'sublevel' => '' ), array( 'display_admin'=>0, 'display_public_reg'=>1, 'display_public_ap'=>0, 'display_on_modal'=> 0, 'name'=>'tos', 'label'=>'Accept', 'type'=>'checkbox', 'native_wp' => 0, 'req' => 2, 'sublevel' => '' ), array( 'display_admin'=>0, 'display_public_reg'=>0, 'display_public_ap'=>0, 'display_on_modal'=> 0, 'name'=>'ihc_optin_accept', 'label' => esc_html__( 'I would like to subscribe to newsletter list ', 'ihc' ), 'type'=>'single_checkbox', 'native_wp' => 0, 'req' => 0, 'sublevel' => '' ), array( 'display_admin'=>0, 'display_public_reg'=>0, 'display_public_ap'=>0, 'display_on_modal'=> 0, 'name'=>'ihc_memberlist_accept', 'label' => esc_html__( 'Show my profile on public Members Directory', 'ihc' ), 'type'=>'single_checkbox', 'native_wp' => 0, 'req' => 0, 'sublevel' => '' ), array( 'display_admin'=>0, 'display_public_reg'=>0, 'display_public_ap'=>0, 'display_on_modal'=> 0, 'name'=>'recaptcha', 'label'=>'Capcha', 'type'=>'capcha', 'native_wp' => 0, 'req' => 2, 'sublevel' => '' ), array( 'display_admin'=>0, 'display_public_reg'=>0, 'display_public_ap'=>1, 'display_on_modal'=> 0, 'name'=>'ihc_social_media', 'label'=>'-', 'type'=>'social_media', 'native_wp' => 0, 'req' => 0, 'sublevel' => '' ), array( 'display_admin'=>0, 'display_public_reg'=>0, 'display_public_ap'=>0, 'display_on_modal'=> 0, 'name'=>'ihc_invitation_code_field', 'label'=>'Invitation Code', 'type'=>'ihc_invitation_code_field', 'native_wp' => 0, 'req' => 2, 'sublevel' => '' ), array( 'display_admin'=>0, 'display_public_reg'=>0, 'display_public_ap'=>0, 'display_on_modal'=> 0, 'name'=>'ihc_dynamic_price', 'label'=>'Price', 'type'=>'ihc_dynamic_price', 'native_wp' => 0, 'req' => 0, 'sublevel' => '' ), array( 'display_admin'=>0, 'display_public_reg'=>0, 'display_public_ap'=>0, 'display_on_modal'=> 0, 'name'=>'ihc_coupon', 'label'=>'Coupon', 'type'=>'text', 'native_wp' => 0, 'req' => 0, 'sublevel' => '' ), array( 'display_admin'=>0, 'display_public_reg'=>0, 'display_public_ap'=>0, 'display_on_modal'=> 0, 'name'=>'payment_select', 'label'=>'Select Payment', 'type'=>'payment_select', 'native_wp' => 0, 'req' => 0, 'sublevel' => '' ), ); return $arr; } function ihc_get_user_reg_fields(){ /* * @param none * @return array */ $option_name = 'ihc_user_fields'; $data = get_option($option_name); if ($data!==FALSE){ return $data; } else { $data = ihc_native_user_field(); add_option($option_name, $data); return $data; } } function ihc_print_form_password($meta_arr=null){ /* * @param attr * @return string with form for lost password */ $str = ''; if(!empty($meta_arr['ihc_login_custom_css'])){ wp_register_style( 'dummy-handle', false ); wp_enqueue_style( 'dummy-handle' ); wp_add_inline_style( 'dummy-handle', $meta_arr['ihc_login_custom_css'] ); } $nonce = wp_create_nonce( 'ihc_lost_password_nonce' ); $str .= '<div class="ihc-pass-form-wrap '.$meta_arr['ihc_login_template'].'">'; $str .= '<form method="post" >' . '<input name="ihcaction" type="hidden" value="reset_pass">' . '<input type="hidden" name="ihc_lost_password_nonce" value="' . $nonce . '" />'; switch($meta_arr['ihc_login_template']){ case 'ihc-login-template-3': $str .= '<div class="impu-form-line-fr">' . '<input type="text" value="" name="email_or_userlogin" placeholder="' . esc_html__('Username or E-mail', 'ihc') . '" />' . '</div>' . '<div class="impu-form-submit">' . '<input type="submit" value="' . esc_html__('Get New Password', 'ihc') . '" name="Submit" class="button button-primary button-large">' . '</div>'; break; case 'ihc-login-template-4': $str .= '<div class="impu-form-line-fr">' . '<i class="fa-ihc fa-username-ihc"></i><input type="text" value="" name="email_or_userlogin" placeholder="'. esc_html__('Username or E-mail', 'ihc').'" />' . '</div>' . '<div class="impu-form-submit">' . '<input type="submit" value="' . esc_html__('Get New Password', 'ihc') . '" name="Submit" class="button button-primary button-large">' . '</div>'; break; case 'ihc-login-template-8': $str .= '<div class="impu-form-line-fr">' . '<i class="fa-ihc fa-username-ihc"></i><input type="text" value="" name="email_or_userlogin" placeholder="'. esc_html__('Username or E-mail', 'ihc').'" />' . '</div>' . '<div class="impu-form-submit">' . '<input type="submit" value="' . esc_html__('Get New Password', 'ihc') . '" name="Submit" class="button button-primary button-large">' . '</div>'; break; case 'ihc-login-template-9': $str .= '<div class="impu-form-line-fr">' . '<i class="fa-ihc fa-username-ihc"></i><input type="text" value="" name="email_or_userlogin" placeholder="'. esc_html__('Username or E-mail', 'ihc').'" />' . '</div>' . '<div class="impu-form-submit">' . '<input type="submit" value="' . esc_html__('Get New Password', 'ihc') . '" name="Submit" class="button button-primary button-large">' . '</div>'; break; case 'ihc-login-template-10': $str .= '<div class="impu-form-line-fr">' . '<i class="fa-ihc fa-username-ihc"></i><input type="text" value="" name="email_or_userlogin" placeholder="'. esc_html__('Username or E-mail', 'ihc').'" />' . '</div>' . '<div class="impu-form-submit">' . '<input type="submit" value="' . esc_html__('Get New Password', 'ihc') . '" name="Submit" class="button button-primary button-large">' . '</div>'; break; case 'ihc-login-template-11': $str .= '<div class="impu-form-line-fr">' . '<i class="fa-ihc fa-username-ihc"></i><input type="text" value="" name="email_or_userlogin" placeholder="'. esc_html__('Username or E-mail', 'ihc').'" />' . '</div>' . '<div class="impu-form-submit">' . '<input type="submit" value="' . esc_html__('Get New Password', 'ihc') . '" name="Submit" class="button button-primary button-large">' . '</div>'; break; case 'ihc-login-template-12': $str .= '<div class="impu-form-line-fr">' . '<i class="fa-ihc fa-username-ihc"></i><input type="text" value="" name="email_or_userlogin" placeholder="'. esc_html__('Username or E-mail', 'ihc').'" />' . '</div>' . '<div class="impu-form-submit">' . '<input type="submit" value="' . esc_html__('Get New Password', 'ihc') . '" name="Submit" class="button button-primary button-large">' . '</div>'; break; case 'ihc-login-template-13': $str .= '<div class="impu-form-pass-additional-content">' . esc_html__('To reset your password, please enter your email address or username below', 'ihc') . '</div>' .'<div class="impu-form-line-fr">' . '<input type="text" value="" name="email_or_userlogin" placeholder="' . esc_html__('Enter your username or email', 'ihc') . '" />' . '</div>' . '<div class="impu-form-submit">' . '<input type="submit" value="' . esc_html__('Reset my password', 'ihc') . '" name="Submit" class="button button-primary button-large">' . '</div>'; break; default: $str .= '<div class="impu-form-line-fr">' . '<span class="impu-form-label-fr impu-form-label-username">' . esc_html__('Username or E-mail', 'ihc') . ': </span>' . '<input type="text" value="" name="email_or_userlogin" />' . '</div>' . '<div class="impu-form-submit">' . '<input type="submit" value="' . esc_html__('Get New Password', 'ihc') . '" name="Submit" class="button button-primary button-large">' . '</div>'; break; } $str .= '</form>'; $str .= '</div>'; return $str; } function ihc_print_form_login($meta_arr=null){ /* * @param array * @return string */ $str = ''; if(!empty($meta_arr['ihc_login_custom_css'])){ wp_register_style( 'dummy-handle', false ); wp_enqueue_style( 'dummy-handle' ); wp_add_inline_style( 'dummy-handle', $meta_arr['ihc_login_custom_css'] ); } wp_enqueue_style( 'dashicons' ); $sm_string = (!empty($meta_arr['ihc_login_show_sm'])) ? ihc_print_social_media_icons('login', array(), (isset($meta_arr['is_locker'])) ? $meta_arr['is_locker'] : FALSE) : ''; $nonce = wp_create_nonce( 'ihc_login_nonce' ); $str .= '<div class="ihc-login-form-wrap '.$meta_arr['ihc_login_template'].'">' .'<form method="post" id="ihc_login_form">' . '<input type="hidden" name="ihcaction" value="login" />' . '<input type="hidden" name="ihc_login_nonce" value="' . $nonce . '" />'; if (!empty($meta_arr['is_locker'])){ $str .= '<input type="hidden" name="locker" value="1" />'; } $captcha = ''; if (!empty($meta_arr['ihc_login_show_recaptcha'])){ $captchaType = get_option( 'ihc_recaptcha_version' ); if ( $captchaType !== false && $captchaType == 'v3' ){ $captchaKey = get_option('ihc_recaptcha_public_v3'); } else { $captchaKey = get_option('ihc_recaptcha_public'); } if ( !empty( $captchaKey ) ){ $view = new \Indeed\Ihc\IndeedView(); $captchaData = array( 'class' => '', 'key' => $captchaKey, 'langCode' => indeed_get_current_language_code(), 'type' => $captchaType, ); $captcha = $view->setTemplate( IHC_PATH . 'public/views/login-captcha.php' )->setContentData( $captchaData, true)->getOutput(); } } $user_field_id = 'iump_login_username'; $password_field_id = 'iump_login_password'; switch($meta_arr['ihc_login_template']){ case 'ihc-login-template-2': //<<<< FIELDS $str .= '<div class="impu-form-line-fr">' . '<span class="impu-form-label-fr impu-form-label-username">'. esc_html__('Username', 'ihc').':</span>' . '<input type="text" value="" name="log" id="' . $user_field_id . '" />' . '</div>' . '<div class="impu-form-line-fr">' . '<span class="impu-form-label-fr impu-form-label-pass">'. esc_html__('Password', 'ihc').':</span>' . '<input type="password" value="" name="pwd" id="' . $password_field_id . '" />' . '<span type="button" class="ihc-hide-pw hide-if-no-js" data-toggle="0" aria-label="Show password"> <span class="dashicons dashicons-visibility" aria-hidden="true"></span> </span>' . '</div>'; //>>>> $str .= $sm_string; //<<<< REMEMBER ME if($meta_arr['ihc_login_remember_me']){ $str .= '<div class="impu-form-line-fr impu-remember-wrapper"><input type="checkbox" value="forever" name="rememberme" class="impu-form-input-remember" /><span class="impu-form-label-fr impu-form-label-remember">'. esc_html__('Remember Me', 'ihc').'</span> </div>'; } //>>>> //<<<< ADDITIONAL LINKS if($meta_arr['ihc_login_register'] || $meta_arr['ihc_login_pass_lost']){ $str .= '<div class="impu-form-line-fr impu-form-links">'; if($meta_arr['ihc_login_register']){ $pag_id = get_option('ihc_general_register_default_page'); if($pag_id!==FALSE){ $register_page = get_permalink( $pag_id ); if (!$register_page){ $register_page = get_home_url(); } $str .= '<div class="impu-form-links-reg"><a href="'.$register_page.'">'. esc_html__('Register', 'ihc').'</a></div>'; } } if($meta_arr['ihc_login_pass_lost']){ $pag_id = get_option('ihc_general_lost_pass_page'); if($pag_id!==FALSE){ $lost_pass_page = get_permalink( $pag_id ); if (!$lost_pass_page){ $lost_pass_page = get_home_url(); } $str .= '<div class="impu-form-links-pass"><a href="'.$lost_pass_page.'">'. esc_html__('Lost your password?', 'ihc').'</a></div>'; } } $str .= '</div>'; } //>>>> $str .= $captcha; //SUBMIT BUTTON $disabled = ''; if(isset($meta_arr['preview']) && $meta_arr['preview']){ $disabled = 'disabled'; } $str .= '<div class="impu-form-line-fr impu-form-submit">' . '<input type="submit" value="'. esc_html__('Log In', 'ihc').'" name="Submit" '.$disabled.'/>' . '</div>'; //>>>> break; case 'ihc-login-template-3': //<<<< FIELDS $str .= '<div class="impu-form-line-fr">' . '<input type="text" value="" name="log" id="' . $user_field_id . '" placeholder="'. esc_html__('Username', 'ihc').'"/>' . '</div>' . '<div class="impu-form-line-fr">' . '<input type="password" value="" id="' . $password_field_id . '" name="pwd" placeholder="'. esc_html__('Password', 'ihc').'"/>' . '<span type="button" class="ihc-hide-pw hide-if-no-js" data-toggle="0" aria-label="Show password"> <span class="dashicons dashicons-visibility" aria-hidden="true"></span> </span>' . '</div>'; //>>>> //SUBMIT BUTTON $disabled = ''; if(isset($meta_arr['preview']) && $meta_arr['preview']){ $disabled = 'disabled'; } $str .= $captcha; $str .= '<div class="impu-form-line-fr impu-form-submit">' . '<input type="submit" value="'. esc_html__('Log In', 'ihc').'" name="Submit" '.$disabled.'/>' . '</div>'; $str .= $sm_string; $str .= '<div class="impu-temp3-bottom">'; //<<<< REMEMBER ME if($meta_arr['ihc_login_remember_me']){ $str .= '<div class="impu-remember-wrapper"><input type="checkbox" value="forever" name="rememberme" class="impu-form-input-remember" /><span class="impu-form-label-remember">'. esc_html__('Remember Me', 'ihc').'</span> </div>'; } //>>>> //<<<< ADDITIONAL LINKS if($meta_arr['ihc_login_register'] || $meta_arr['ihc_login_pass_lost']){ $str .= '<div class="impu-form-links">'; if($meta_arr['ihc_login_register']){ $pag_id = get_option('ihc_general_register_default_page'); if($pag_id!==FALSE){ $register_page = get_permalink( $pag_id ); if (!$register_page){ $register_page = get_home_url(); } $str .= '<div class="impu-form-links-reg"><a href="'.$register_page.'">'. esc_html__('Register', 'ihc').'</a></div>'; } } if($meta_arr['ihc_login_pass_lost']){ $pag_id = get_option('ihc_general_lost_pass_page'); if($pag_id!==FALSE){ $lost_pass_page = get_permalink( $pag_id ); if (!$lost_pass_page){ $lost_pass_page = get_home_url(); } $str .= '<div class="impu-form-links-pass"><a href="'.$lost_pass_page.'">'. esc_html__('Lost your password?', 'ihc').'</a></div>'; } } $str .= '</div>'; } //>>>> $str .= '<div class="iump-clear"></div>'; $str .= '</div>'; break; case 'ihc-login-template-4': //<<<< FIELDS $str .= '<div class="impu-form-line-fr">' . '<i class="fa-ihc fa-username-ihc"></i><input type="text" value="" id="' . $user_field_id . '" name="log" placeholder="'. esc_html__('Username', 'ihc').'"/>' . '</div>' . '<div class="impu-form-line-fr">' . '<i class="fa-ihc fa-pass-ihc"></i><input type="password" value="" id="' . $password_field_id . '" name="pwd" placeholder="'. esc_html__('Password', 'ihc').'"/>' . '<span type="button" class="ihc-hide-pw hide-if-no-js" data-toggle="0" aria-label="Show password"> <span class="dashicons dashicons-visibility" aria-hidden="true"></span> </span>' . '</div>'; //>>>> //<<<< REMEMBER ME if($meta_arr['ihc_login_remember_me']){ $str .= '<div class="impu-remember-wrapper"><input type="checkbox" value="forever" name="rememberme" class="impu-form-input-remember" /><span class="impu-form-label-remember">'. esc_html__('Remember Me', 'ihc').'</span> </div>'; } //>>>> $str .= $captcha; //SUBMIT BUTTON $disabled = ''; if(isset($meta_arr['preview']) && $meta_arr['preview']){ $disabled = 'disabled'; } $str .= '<div class="impu-form-line-fr impu-form-submit">' . '<input type="submit" value="'. esc_html__('Log In', 'ihc').'" name="Submit" '.$disabled.' />' . '</div>'; $str .= $sm_string; //<<<< ADDITIONAL LINKS if($meta_arr['ihc_login_register'] || $meta_arr['ihc_login_pass_lost']){ $str .= '<div class="impu-form-links">'; if($meta_arr['ihc_login_register']){ $pag_id = get_option('ihc_general_register_default_page'); if($pag_id!==FALSE){ $register_page = get_permalink( $pag_id ); if (!$register_page){ $register_page = get_home_url(); } $str .= '<div class="impu-form-links-reg"><a href="'.$register_page.'">'. esc_html__('Register', 'ihc').'</a></div>'; } } if($meta_arr['ihc_login_pass_lost']){ $pag_id = get_option('ihc_general_lost_pass_page'); if($pag_id!==FALSE){ $lost_pass_page = get_permalink( $pag_id ); if (!$lost_pass_page){ $lost_pass_page = get_home_url(); } $str .= '<div class="impu-form-links-pass"><a href="'.$lost_pass_page.'">'. esc_html__('Lost your password?', 'ihc').'</a></div>'; } } $str .= '</div>'; } //>>>> break; case 'ihc-login-template-5': //<<<< FIELDS $str .= '<div class="impu-form-line-fr">' . '<span class="impu-form-label-fr impu-form-label-username">'. esc_html__('Username', 'ihc').':</span>' . '<input type="text" value="" id="' . $user_field_id . '" name="log" />' . '</div>' . '<div class="impu-form-line-fr">' . '<span class="impu-form-label-fr impu-form-label-pass">'. esc_html__('Password', 'ihc').':</span>' . '<input type="password" value="" id="' . $password_field_id . '" name="pwd" />' . '<span type="button" class="ihc-hide-pw hide-if-no-js" data-toggle="0" aria-label="Show password"> <span class="dashicons dashicons-visibility" aria-hidden="true"></span> </span>' . '</div>'; //>>>> $str .= '<div class="impu-temp5-row">'; $str .= '<div class="impu-temp5-row-left">'; //<<<< REMEMBER ME if($meta_arr['ihc_login_remember_me']){ $str .= '<div class="impu-remember-wrapper"><input type="checkbox" value="forever" name="rememberme" class="impu-form-input-remember" /><span class="impu-form-label-fr impu-form-label-remember">'. esc_html__('Remember Me', 'ihc').'</span> </div>'; } //>>>> //<<<< ADDITIONAL LINKS if($meta_arr['ihc_login_register'] || $meta_arr['ihc_login_pass_lost']){ $str .= '<div class="impu-form-line-fr impu-form-links">'; if($meta_arr['ihc_login_register']){ $pag_id = get_option('ihc_general_register_default_page'); if($pag_id!==FALSE){ $register_page = get_permalink( $pag_id ); if (!$register_page){ $register_page = get_home_url(); } $str .= '<div class="impu-form-links-reg"><a href="'.$register_page.'">'. esc_html__('Register', 'ihc').'</a></div>'; } } if($meta_arr['ihc_login_pass_lost']){ $pag_id = get_option('ihc_general_lost_pass_page'); if($pag_id!==FALSE){ $lost_pass_page = get_permalink( $pag_id ); if (!$lost_pass_page){ $lost_pass_page = get_home_url(); } $str .= '<div class="impu-form-links-pass"><a href="'.$lost_pass_page.'">'. esc_html__('Lost your password?', 'ihc').'</a></div>'; } } $str .= '</div>'; } //>>>> $str .= '</div>'; $str .= $captcha; //SUBMIT BUTTON $disabled = ''; if(isset($meta_arr['preview']) && $meta_arr['preview']){ $disabled = 'disabled'; } $str .= '<div class="impu-form-line-fr impu-form-submit">' . '<input type="submit" value="'. esc_html__('Log In', 'ihc').'" name="Submit" '.$disabled.'/>' . '</div>'; //>>>> $str .= '<div class="iump-clear"></div>'; $str .= $sm_string; $str .= '</div>'; break; case 'ihc-login-template-6': //<<<< FIELDS $str .= '<div class="impu-form-line-fr">' . '<span class="impu-form-label-fr impu-form-label-username">'. esc_html__('Username', 'ihc').':</span>' . '<input type="text" value="" name="log" id="' . $user_field_id . '" />' . '</div>' . '<div class="impu-form-line-fr">' . '<span class="impu-form-label-fr impu-form-label-pass">'. esc_html__('Password', 'ihc').':</span>' . '<input type="password" value="" id="' . $password_field_id . '" name="pwd" />' . '<span type="button" class="ihc-hide-pw hide-if-no-js" data-toggle="0" aria-label="Show password"> <span class="dashicons dashicons-visibility" aria-hidden="true"></span> </span>' . '</div>'; //>>>> $str .= $sm_string; //<<<< ADDITIONAL LINKS if($meta_arr['ihc_login_register'] || $meta_arr['ihc_login_pass_lost']){ $str .= '<div class="impu-form-links">'; if($meta_arr['ihc_login_register']){ $pag_id = get_option('ihc_general_register_default_page'); if($pag_id!==FALSE){ $register_page = get_permalink( $pag_id ); if (!$register_page){ $register_page = get_home_url(); } $str .= '<div class="impu-form-links-reg"><a href="'.$register_page.'">'. esc_html__('Register', 'ihc').'</a></div>'; } } if($meta_arr['ihc_login_pass_lost']){ $pag_id = get_option('ihc_general_lost_pass_page'); if($pag_id!==FALSE){ $lost_pass_page = get_permalink( $pag_id ); if (!$lost_pass_page){ $lost_pass_page = get_home_url(); } $str .= '<div class="impu-form-links-pass"><a href="'.$lost_pass_page.'">'. esc_html__('Lost your password?', 'ihc').'</a></div>'; } } $str .= '</div>'; } //>>>> $str .= '<div class="impu-temp6-row">'; $str .= '<div class="impu-temp6-row-left">'; //<<<< REMEMBER ME if($meta_arr['ihc_login_remember_me']){ $str .= '<div class="impu-remember-wrapper"><input type="checkbox" value="forever" name="rememberme" class="impu-form-input-remember" /><span class="impu-form-label-fr impu-form-label-remember">'. esc_html__('Remember Me', 'ihc').'</span> </div>'; } //>>>> $str .= '</div>'; $str .= $captcha; //SUBMIT BUTTON $disabled = ''; if(isset($meta_arr['preview']) && $meta_arr['preview']){ $disabled = 'disabled'; } $str .= '<div class="impu-form-line-fr impu-form-submit">' . '<input type="submit" value="'. esc_html__('Log In', 'ihc').'" name="Submit" '.$disabled.'/>' . '</div>'; //>>>> $str .= '<div class="iump-clear"></div>'; $str .= '</div>'; break; case 'ihc-login-template-7': //<<<< FIELDS $str .= '<div class="impu-form-line-fr">' . '<span class="impu-form-label-fr impu-form-label-username">'. esc_html__('Username', 'ihc').':</span>' . '<input type="text" value="" name="log" id="' . $user_field_id . '"/>' . '</div>' . '<div class="impu-form-line-fr">' . '<span class="impu-form-label-fr impu-form-label-pass">'. esc_html__('Password', 'ihc').':</span>' . '<input type="password" value="" id="' . $password_field_id . '" name="pwd" />' . '<span type="button" class="ihc-hide-pw hide-if-no-js" data-toggle="0" aria-label="Show password"> <span class="dashicons dashicons-visibility" aria-hidden="true"></span> </span>' . '</div>'; //>>>> $str .= $sm_string; $str .= '<div class="impu-temp5-row">'; $str .= '<div class="impu-temp5-row-left">'; //<<<< REMEMBER ME if($meta_arr['ihc_login_remember_me']){ $str .= '<div class="impu-remember-wrapper"><input type="checkbox" value="forever" name="rememberme" class="impu-form-input-remember" /><span class="impu-form-label-fr impu-form-label-remember">'. esc_html__('Remember Me', 'ihc').'</span> </div>'; } //>>>> //<<<< ADDITIONAL LINKS if($meta_arr['ihc_login_register'] || $meta_arr['ihc_login_pass_lost']){ $str .= '<div class="impu-form-links">'; if($meta_arr['ihc_login_register']){ $pag_id = get_option('ihc_general_register_default_page'); if($pag_id!==FALSE){ $register_page = get_permalink( $pag_id ); if (!$register_page){ $register_page = get_home_url(); } $str .= '<div class="impu-form-links-reg"><a href="'.$register_page.'">'. esc_html__('Register', 'ihc').'</a></div>'; } } if($meta_arr['ihc_login_pass_lost']){ $pag_id = get_option('ihc_general_lost_pass_page'); if($pag_id!==FALSE){ $lost_pass_page = get_permalink( $pag_id ); if (!$lost_pass_page){ $lost_pass_page = get_home_url(); } $str .= '<div class="impu-form-links-pass"><a href="'.$lost_pass_page.'">'. esc_html__('Lost your password?', 'ihc').'</a></div>'; } } $str .= '</div>'; } //>>>> $str .= '</div>'; $str .= $captcha; //SUBMIT BUTTON $disabled = ''; if(isset($meta_arr['preview']) && $meta_arr['preview']){ $disabled = 'disabled'; } $str .= '<div class="impu-form-submit">' . '<input type="submit" value="'. esc_html__('Log In', 'ihc').'" name="Submit" '.$disabled.'/>' . '</div>'; //>>>> $str .= '<div class="iump-clear"></div>'; $str .= '</div>'; break; case 'ihc-login-template-8': //<<<< FIELDS $str .= '<div class="impu-form-line-fr">' . '<i class="fa-ihc fa-username-ihc"></i><input type="text" value="" id="' . $user_field_id . '" name="log" placeholder="'. esc_html__('Username', 'ihc').'"/>' . '</div>' . '<div class="impu-form-line-fr">' . '<i class="fa-ihc fa-pass-ihc"></i><input type="password" value="" id="' . $password_field_id . '" name="pwd" placeholder="'. esc_html__('Password', 'ihc').'"/>' . '<span type="button" class="ihc-hide-pw hide-if-no-js" data-toggle="0" aria-label="Show password"> <span class="dashicons dashicons-visibility" aria-hidden="true"></span> </span>' . '</div>'; //>>>> //<<<< REMEMBER ME if($meta_arr['ihc_login_remember_me']){ $str .= '<div class="impu-remember-wrapper"><input type="checkbox" value="forever" name="rememberme" class="impu-form-input-remember" /><span class="impu-form-label-remember">'. esc_html__('Remember Me', 'ihc').'</span> </div>'; } //>>>> $str .= $captcha; //SUBMIT BUTTON $disabled = ''; if(isset($meta_arr['preview']) && $meta_arr['preview']){ $disabled = 'disabled'; } $str .= '<div class="impu-form-line-fr impu-form-submit">' . '<input type="submit" value="'. esc_html__('Log In', 'ihc').'" name="Submit" '.$disabled.' />' . '</div>'; $str .= $sm_string; //<<<< ADDITIONAL LINKS if($meta_arr['ihc_login_register'] || $meta_arr['ihc_login_pass_lost']){ $str .= '<div class="impu-form-links">'; if($meta_arr['ihc_login_register']){ $pag_id = get_option('ihc_general_register_default_page'); if($pag_id!==FALSE){ $register_page = get_permalink( $pag_id ); if (!$register_page){ $register_page = get_home_url(); } $str .= '<div class="impu-form-links-reg"><a href="'.$register_page.'">'. esc_html__('Register', 'ihc').'</a></div>'; } } if($meta_arr['ihc_login_pass_lost']){ $pag_id = get_option('ihc_general_lost_pass_page'); if($pag_id!==FALSE){ $lost_pass_page = get_permalink( $pag_id ); if (!$lost_pass_page){ $lost_pass_page = get_home_url(); } $str .= '<div class="impu-form-links-pass"><a href="'.$lost_pass_page.'">'. esc_html__('Lost your password?', 'ihc').'</a></div>'; } } $str .= '</div>'; } //>>>> break; case 'ihc-login-template-9': //<<<< FIELDS $str .= '<div class="impu-form-line-fr">' . '<i class="fa-ihc fa-username-ihc"></i><input type="text" value="" id="' . $user_field_id . '" name="log" placeholder="'. esc_html__('Username', 'ihc').'"/>' . '</div>' . '<div class="impu-form-line-fr">' . '<i class="fa-ihc fa-pass-ihc"></i><input type="password" value="" id="' . $password_field_id . '" name="pwd" placeholder="'. esc_html__('Password', 'ihc').'"/>' . '<span type="button" class="ihc-hide-pw hide-if-no-js" data-toggle="0" aria-label="Show password"> <span class="dashicons dashicons-visibility" aria-hidden="true"></span> </span>' . '</div>'; //>>>> //<<<< REMEMBER ME if($meta_arr['ihc_login_remember_me']){ $str .= '<div class="impu-remember-wrapper"><input type="checkbox" value="forever" name="rememberme" class="impu-form-input-remember" /><span class="impu-form-label-remember">'. esc_html__('Remember Me', 'ihc').'</span> </div>'; } //>>>> if($meta_arr['ihc_login_pass_lost']){ $pag_id = get_option('ihc_general_lost_pass_page'); if($pag_id!==FALSE){ $lost_pass_page = get_permalink( $pag_id ); if (!$lost_pass_page){ $lost_pass_page = get_home_url(); } $str .= '<div class="impu-form-links-pass"><a href="'.$lost_pass_page.'">'. esc_html__('Lost your password?', 'ihc').'</a></div>'; } } $str .= '<div class="ihc-clear"></div>'; $str .= $captcha; //SUBMIT BUTTON $disabled = ''; if(isset($meta_arr['preview']) && $meta_arr['preview']){ $disabled = 'disabled'; } $str .= '<div class="impu-form-line-fr impu-form-submit">' . '<input type="submit" value="'. esc_html__('Log In', 'ihc').'" name="Submit" '.$disabled.' />' . '</div>'; $str .= $sm_string; //<<<< ADDITIONAL LINKS if($meta_arr['ihc_login_register'] || $meta_arr['ihc_login_pass_lost']){ $str .= '<div class="impu-form-links">'; if($meta_arr['ihc_login_register']){ $pag_id = get_option('ihc_general_register_default_page'); if($pag_id!==FALSE){ $register_page = get_permalink( $pag_id ); if (!$register_page){ $register_page = get_home_url(); } $str .= '<div class="impu-form-links-reg">'. esc_html__("Don't have an account?", 'ihc').'<a href="'.$register_page.'">'. esc_html__('Sign Up', 'ihc').'</a></div>'; } } $str .= '</div>'; } //>>>> break; case 'ihc-login-template-10': //<<<< FIELDS $str .= '<div class="impu-form-line-fr">' . '<i class="fa-ihc fa-username-ihc"></i><input type="text" value="" id="' . $user_field_id . '" name="log" placeholder="'. esc_html__('Username', 'ihc').'"/>' . '</div>' . '<div class="impu-form-line-fr">' . '<i class="fa-ihc fa-pass-ihc"></i><input type="password" value="" id="' . $password_field_id . '" name="pwd" placeholder="'. esc_html__('Password', 'ihc').'"/>' . '<span type="button" class="ihc-hide-pw hide-if-no-js" data-toggle="0" aria-label="Show password"> <span class="dashicons dashicons-visibility" aria-hidden="true"></span> </span>' . '</div>'; //>>>> //<<<< REMEMBER ME if($meta_arr['ihc_login_remember_me']){ $str .= '<div class="impu-remember-wrapper"><input type="checkbox" value="forever" name="rememberme" class="impu-form-input-remember" /><span class="impu-form-label-remember">'. esc_html__('Remember Me', 'ihc').'</span> </div>'; } //>>>> if($meta_arr['ihc_login_pass_lost']){ $pag_id = get_option('ihc_general_lost_pass_page'); if($pag_id!==FALSE){ $lost_pass_page = get_permalink( $pag_id ); if (!$lost_pass_page){ $lost_pass_page = get_home_url(); } $str .= '<div class="impu-form-links-pass"><a href="'.$lost_pass_page.'">'. esc_html__('Lost your password?', 'ihc').'</a></div>'; } } $str .= '<div class="ihc-clear"></div>'; $str .= $captcha; //SUBMIT BUTTON $disabled = ''; if(isset($meta_arr['preview']) && $meta_arr['preview']){ $disabled = 'disabled'; } $str .= '<div class="impu-form-line-fr impu-form-submit">' . '<input type="submit" value="'. esc_html__('Log In', 'ihc').'" name="Submit" '.$disabled.' />' . '</div>'; $str .= $sm_string; //<<<< ADDITIONAL LINKS if($meta_arr['ihc_login_register'] || $meta_arr['ihc_login_pass_lost']){ $str .= '<div class="impu-form-links">'; if($meta_arr['ihc_login_register']){ $pag_id = get_option('ihc_general_register_default_page'); if($pag_id!==FALSE){ $register_page = get_permalink( $pag_id ); if (!$register_page){ $register_page = get_home_url(); } $str .= '<div class="impu-form-links-reg">'. esc_html__("Don't have an account?", 'ihc').'<a href="'.$register_page.'">'. esc_html__('Sign Up', 'ihc').'</a></div>'; } } $str .= '</div>'; } //>>>> break; case 'ihc-login-template-11': //<<<< FIELDS $str .= '<div class="impu-form-line-fr">' . '<i class="fa-ihc fa-username-ihc"></i><input type="text" value="" id="' . $user_field_id . '" name="log" placeholder="'. esc_html__('Username', 'ihc').'"/>' . '</div>' . '<div class="impu-form-line-fr">' . '<i class="fa-ihc fa-pass-ihc"></i><input type="password" value="" id="' . $password_field_id . '" name="pwd" placeholder="'. esc_html__('Password', 'ihc').'"/>' . '<span type="button" class="ihc-hide-pw hide-if-no-js" data-toggle="0" aria-label="Show password"> <span class="dashicons dashicons-visibility" aria-hidden="true"></span> </span>' . '</div>'; //>>>> //<<<< REMEMBER ME if($meta_arr['ihc_login_remember_me']){ $str .= '<div class="impu-remember-wrapper"><input type="checkbox" value="forever" name="rememberme" class="impu-form-input-remember" /><span class="impu-form-label-remember">'. esc_html__('Remember Me', 'ihc').'</span> </div>'; } //>>>> if($meta_arr['ihc_login_pass_lost']){ $pag_id = get_option('ihc_general_lost_pass_page'); if($pag_id!==FALSE){ $lost_pass_page = get_permalink( $pag_id ); if (!$lost_pass_page){ $lost_pass_page = get_home_url(); } $str .= '<div class="impu-form-links-pass"><a href="'.$lost_pass_page.'">'. esc_html__('Lost your password?', 'ihc').'</a></div>'; } } $str .= '<div class="ihc-clear"></div>'; $str .= $captcha; //SUBMIT BUTTON $disabled = ''; if(isset($meta_arr['preview']) && $meta_arr['preview']){ $disabled = 'disabled'; } $str .= '<div class="impu-form-line-fr impu-form-submit">' . '<input type="submit" value="'. esc_html__('Log In', 'ihc').'" name="Submit" '.$disabled.' />' . '</div>'; $str .= $sm_string; //<<<< ADDITIONAL LINKS if($meta_arr['ihc_login_register'] || $meta_arr['ihc_login_pass_lost']){ $str .= '<div class="impu-form-links">'; if($meta_arr['ihc_login_register']){ $pag_id = get_option('ihc_general_register_default_page'); if($pag_id!==FALSE){ $register_page = get_permalink( $pag_id ); if (!$register_page){ $register_page = get_home_url(); } $str .= '<div class="impu-form-links-reg">'. esc_html__("Don't have an account?", 'ihc').'<a href="'.$register_page.'">'. esc_html__('Sign Up', 'ihc').'</a></div>'; } } $str .= '</div>'; } //>>>> break; case 'ihc-login-template-12': //<<<< FIELDS $str .= '<div class="impu-form-line-fr">' . '<i class="fa-ihc fa-username-ihc"></i><input type="text" value="" id="' . $user_field_id . '" name="log" placeholder="'. esc_html__('Username', 'ihc').'"/>' . '</div>' . '<div class="impu-form-line-fr">' . '<i class="fa-ihc fa-pass-ihc"></i><input type="password" value="" id="' . $password_field_id . '" name="pwd" placeholder="'. esc_html__('Password', 'ihc').'"/>' . '<span type="button" class="ihc-hide-pw hide-if-no-js" data-toggle="0" aria-label="Show password"> <span class="dashicons dashicons-visibility" aria-hidden="true"></span> </span>' . '</div>'; //>>>> //<<<< REMEMBER ME if($meta_arr['ihc_login_remember_me']){ $str .= '<div class="impu-remember-wrapper"><input type="checkbox" value="forever" name="rememberme" class="impu-form-input-remember" /><span class="impu-form-label-remember">'. esc_html__('Remember Me', 'ihc').'</span> </div>'; } //>>>> if($meta_arr['ihc_login_pass_lost']){ $pag_id = get_option('ihc_general_lost_pass_page'); if($pag_id!==FALSE){ $lost_pass_page = get_permalink( $pag_id ); if (!$lost_pass_page){ $lost_pass_page = get_home_url(); } $str .= '<div class="impu-form-links-pass"><a href="'.$lost_pass_page.'">'. esc_html__('Lost your password?', 'ihc').'</a></div>'; } } $str .= '<div class="ihc-clear"></div>'; $str .= $captcha; //SUBMIT BUTTON $disabled = ''; if(isset($meta_arr['preview']) && $meta_arr['preview']){ $disabled = 'disabled'; } $str .= '<div class="impu-form-line-fr impu-form-submit">' . '<input type="submit" value="'. esc_html__('Log In', 'ihc').'" name="Submit" '.$disabled.' />' . '</div>'; $str .= $sm_string; //<<<< ADDITIONAL LINKS if($meta_arr['ihc_login_register'] || $meta_arr['ihc_login_pass_lost']){ $str .= '<div class="impu-form-links">'; if($meta_arr['ihc_login_register']){ $pag_id = get_option('ihc_general_register_default_page'); if($pag_id!==FALSE){ $register_page = get_permalink( $pag_id ); if (!$register_page){ $register_page = get_home_url(); } $str .= '<div class="impu-form-links-reg">'. esc_html__("Don't have an account?", 'ihc').'<a href="'.$register_page.'">'. esc_html__('Sign Up', 'ihc').'</a></div>'; } } $str .= '</div>'; } //>>>> break; case 'ihc-login-template-13': //<<<< FIELDS $str .= '<div class="impu-form-line-fr">' . '<span class="impu-form-label-fr impu-form-label-username">'. esc_html__('Username or Email', 'ihc').'</span>' . '<input type="text" value="" id="' . $user_field_id . '" name="log" />' . '</div>' . '<div class="impu-form-line-fr">' . '<span class="impu-form-label-fr impu-form-label-pass">'. esc_html__('Password', 'ihc').'</span>' . '<input type="password" value="" id="' . $password_field_id . '" name="pwd" />' . '<span type="button" class="ihc-hide-pw hide-if-no-js" data-toggle="0" aria-label="Show password"> <span class="dashicons dashicons-visibility" aria-hidden="true"></span> </span>' . '</div>'; //>>>> //<<<< REMEMBER ME if($meta_arr['ihc_login_remember_me']){ $str .= '<div class="impu-temp5-row">'; $str .= '<div class="impu-remember-wrapper"><input type="checkbox" value="forever" name="rememberme" class="impu-form-input-remember" /><span class="impu-form-label-fr impu-form-label-remember">'. esc_html__('Keep me signed in', 'ihc').'</span> </div>'; $str .= '</div>'; } //>>>> $str .= '<div class="impu-temp5-row">'; //SUBMIT BUTTON $disabled = ''; if(isset($meta_arr['preview']) && $meta_arr['preview']){ $disabled = 'disabled'; } $str .= '<div class="impu-temp5-row-left">'; $str .= '<div class="impu-form-submit">' . '<input type="submit" value="'. esc_html__('Log In', 'ihc').'" name="Submit" '.$disabled.'/>' . '</div>'; $str .= '</div>'; //>>>> if($meta_arr['ihc_login_register']){ $str .= '<div class="impu-temp5-row-right">'; if($meta_arr['ihc_login_register']){ $pag_id = get_option('ihc_general_register_default_page'); if($pag_id!==FALSE){ $register_page = get_permalink( $pag_id ); if (!$register_page){ $register_page = get_home_url(); } $str .= '<div class="ihc-register-link"><a href="'.$register_page.'">'. esc_html__('Register', 'ihc').'</a></div>'; } } $str .= '</div>'; } $str .= '<div class="iump-clear"></div>'; $str .= '</div>'; //<<<< ADDITIONAL LINKS if($meta_arr['ihc_login_pass_lost']){ $str .= '<div class="impu-temp5-row">'; $pag_id = get_option('ihc_general_lost_pass_page'); if($pag_id!==FALSE){ $lost_pass_page = get_permalink( $pag_id ); if (!$lost_pass_page){ $lost_pass_page = get_home_url(); } $str .= '<div class="impu-form-links-pass"><a href="'.$lost_pass_page.'">'. esc_html__('Lost your password?', 'ihc').'</a></div>'; } $str .= '</div>'; } //>>>> $str .= $captcha; $str .= $sm_string; break; default: //<<<< FIELDS $str .= '<div class="impu-form-line-fr">' . '<span class="impu-form-label-fr impu-form-label-username">'. esc_html__('Username', 'ihc').':</span>' . '<input type="text" value="" name="log" id="' . $user_field_id . '" />' . '</div>' . '<div class="impu-form-line-fr">' . '<span class="impu-form-label-fr impu-form-label-pass">'. esc_html__('Password', 'ihc').':</span>' . '<input type="password" value="" name="pwd" id="' . $password_field_id . '" />' . '<span type="button" class="ihc-hide-pw hide-if-no-js" data-toggle="0" aria-label="Show password"> <span class="dashicons dashicons-visibility" aria-hidden="true"></span> </span>' . '</div>'; //>>>> $str .= $sm_string; //<<<< REMEMBER ME if($meta_arr['ihc_login_remember_me']){ $str .= '<div class="impu-form-line-fr impu-remember-wrapper"><input type="checkbox" value="forever" name="rememberme" class="impu-form-input-remember" /><span class="impu-form-label-fr impu-form-label-remember">'. esc_html__('Remember Me').'</span> </div>'; } //>>>> //<<<< ADDITIONAL LINKS if($meta_arr['ihc_login_register'] || $meta_arr['ihc_login_pass_lost']){ $str .= '<div class="impu-form-line-fr impu-form-links">'; if($meta_arr['ihc_login_register']){ $pag_id = get_option('ihc_general_register_default_page'); if($pag_id!==FALSE){ $register_page = get_permalink( $pag_id ); if (!$register_page){ $register_page = get_home_url(); } $str .= '<div class="impu-form-links-reg"><a href="'.$register_page.'">'. esc_html__('Register', 'ihc').'</a></div>'; } } if($meta_arr['ihc_login_pass_lost']){ $pag_id = get_option('ihc_general_lost_pass_page'); if($pag_id!==FALSE){ $lost_pass_page = get_permalink( $pag_id ); if (!$lost_pass_page){ $lost_pass_page = get_home_url(); } $str .= '<div class="impu-form-links-pass"><a href="'.$lost_pass_page.'">'. esc_html__('Lost your password?', 'ihc').'</a></div>'; } } $str .= '</div>'; } //>>>> //SUBMIT BUTTON $disabled = ''; if(isset($meta_arr['preview']) && $meta_arr['preview']){ $disabled = 'disabled'; } $str .= $captcha; $str .= '<div class="impu-form-line-fr impu-form-submit">' . '<input type="submit" value="'. esc_html__('Log In', 'ihc').'" name="Submit" '.$disabled.' class="button button-primary button-large"/>' . '</div>'; //>>>> break; } $str .= '</form>'; /// ERROR MESSAGE if (!empty($_GET['ihc_pending_email'])){ /************************ PENDING EMAIL ********************/ $login_faild = get_option('ihc_login_error_email_pending', true); if (empty($login_faild)){ $arr = ihc_return_meta_arr('login-messages', false, true); //print_r($arr); if (isset($arr['ihc_login_error_email_pending']) && $arr['ihc_login_error_email_pending']){ $login_faild = $arr['ihc_login_error_email_pending']; } else { $login_faild = esc_html__('Error', 'ihc'); } } $str .= '<div class="ihc-login-error-wrapper"><div class="ihc-login-error">' . ihc_correct_text($login_faild) . '</div></div>'; } else if (!empty($_GET['ihc_login_fail'])){ /************************** FAIL *****************************/ $login_faild = ihc_correct_text( get_option('ihc_login_error', true) ); if (empty($login_faild)){ $arr = ihc_return_meta_arr('login-messages', false, true); if (isset($arr['ihc_login_error']) && $arr['ihc_login_error']){ $login_faild = $arr['ihc_login_error']; } else { $login_faild = esc_html__('Error', 'ihc'); } } $str .= '<div class="ihc-login-error-wrapper"><div class="ihc-login-error">' . ihc_correct_text($login_faild) . '</div></div>'; } else if (!empty($_GET['ihc_login_pending'])){ /*********************** PENDING ******************************/ $str .= '<div class="ihc-login-pending">' . ihc_correct_text(get_option('ihc_login_pending', true)) . '</div>'; } else if (!empty($_GET['ihc_social_login_failed'])){ /*********************** Social Login - Error ******************************/ $errMessage = get_option('ihc_social_login_failed', true ); if ( $errMessage == '' ){ $errMessage = esc_html__( 'You are not registered with this social network. Please register first!', 'ihc' ); } $errMessage = ihc_correct_text( $errMessage ); $str .= '<div class="ihc-login-error-wrapper">' . $errMessage . '</div>'; } else if (!empty($_GET['ihc_fail_captcha'])){ $login_faild = ihc_correct_text(get_option('ihc_login_error_on_captcha')); if (!$login_faild){ $login_faild = esc_html__('Error with Captcha', 'ihc'); } $str .= '<div class="ihc-login-error-wrapper"><div class="ihc-login-error">' . $login_faild . '</div></div>'; } if (!empty($_GET['ihc_login_block'])){ require_once IHC_PATH . 'classes/Ihc_Security_Login.class.php'; $security_object = new Ihc_Security_Login(); $message = $security_object->get_error_attempt_message(); if ($message){ $str .= '<div class="ihc-login-error-wrapper"><div class="ihc-login-error">' . $message . '</div></div>'; } } /// ERROR MESSAGE $str .= '</div>'; $err_msg = esc_html__('Please complete all require fields!', 'ihc'); $custom_err_msg = get_option('ihc_login_error_ajax'); if ($custom_err_msg){ $err_msg = $custom_err_msg; } $str .= "<span class='ihc-js-login-data' data-user_field='#$user_field_id' data-password_field='#$password_field_id' data-error_message='$err_msg' ></span>"; return $str; } function ihc_print_social_media_icons($type='login', $already_registered_sm=array(), $is_locker=FALSE){ /* * @param string (login, register, update), array, bool * @return string */ $current_url = IHC_PROTOCOL . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $metas = ihc_return_meta_arr('social_media'); $arr = array( "fb" => "Facebook", "tw" => "Twitter", "goo" => "Google", "in" => "LinkedIn", "vk" => "Vkontakte", "ig" => "Instagram", "tbr" => "Tumblr", ); $str = ''; foreach ($arr as $k=>$v){ $data = ihc_check_social_status($k); $label = (empty($metas['ihc_sm_show_label'])) ? "" : '<span class="ihc-sm-item-label">'.$v.'</span>'; if ($data['settings']=='Completed' && $data['active']){ $extra_class = 'ihc-' . $k; $icon = '<i class="fa-ihc-sm fa-ihc-' . $k . '"></i>'; if ($type=='login'){ $href = IHC_URL . 'public/social_handler.php?sm_login=' . $k . '&ihc_current_url=' . urlencode($current_url); if (!empty($is_locker)){ $href .= '&is_locker=1'; } $str .= '<div class="ihc-sm-item ' . $extra_class . '"><a href="' . $href . '">' . $icon . $label . '</a></div>'; } else if ($type=='register'){ $str .= '<div onClick="ihcRunSocialReg(\''.$k.'\');" class="ihc-sm-item ' . $extra_class . '">' . $icon . $label . '<div class="iump-clear"></div></div>'; } else if ($type=='update'){ $already_class = ''; if ($already_registered_sm && is_array( $already_registered_sm ) && in_array($k, $already_registered_sm)){ $already_class = ' ihc-sm-already-reg'; $str .= '<div class="ihc-sm-item ' . $extra_class . ' ' . $already_class . '"><a href="javascript:void(0)" onClick="ihcRemoveSocial(\'' . $k . '\');">' . $icon . $label . '<div class="iump-clear"></div></a></div>'; } else { $href = IHC_URL . 'public/social_handler.php?reg_ext_usr=' . $k . '&ihc_current_url=' . urlencode($current_url); $str .= '<div class="ihc-sm-item ' . $extra_class . '"><a href="' . $href . '">' . $icon . $label . '<div class="iump-clear"></div></a></div>'; } } } } if ($str){ if ($type=='login'){ $str = '<div>' . ihc_correct_text($metas['ihc_sm_top_content']) . '</div>' . $str . '<div>' . ihc_correct_text($metas['ihc_sm_bottom_content']) . '</div>'; } $str = '<div class="ihc-sm-wrapp-fe ' . ((isset($metas['ihc_sm_template'])) ? $metas['ihc_sm_template'] : '') . '">' . $str . '</div>'; if (!empty($metas['ihc_sm_custom_css'])){ wp_register_style( 'dummy-handle', false ); wp_enqueue_style( 'dummy-handle' ); wp_add_inline_style( 'dummy-handle', $metas['ihc_sm_custom_css'] ); } } return $str; } function ihc_print_links_login(){ /* * @param none * @return string */ $str =''; $str .= '<div class="impu-form-line-fr impu-form-links">'; $pag_id = get_option('ihc_general_register_default_page'); if($pag_id!==FALSE){ $register_page = get_permalink( $pag_id ); if (!$register_page){ $register_page = get_home_url(); } $str .= '<div class="impu-form-links-reg"><a href="'.$register_page.'">'. esc_html__('Register', 'ihc').'</a></div>'; } $pag_id = get_option('ihc_general_lost_pass_page'); if($pag_id!==FALSE){ $lost_pass_page = get_permalink( $pag_id ); if (!$lost_pass_page){ $lost_pass_page = get_home_url(); } $str .= '<div class="impu-form-links-pass"><a href="'.$lost_pass_page.'">'. esc_html__('Lost your password?', 'ihc').'</a></div>'; } $str .= '</div>'; return $str; } function ihc_get_level_by_id($id=null){ /* * @param int * @return array|bool */ return \Indeed\Ihc\Db\Memberships::getOne( $id ); } function ihc_format_str_like_wp( $str ){ /* * @param string * @return string */ $str = wpautop( $str ); return $str; } function ihc_array_value_exists($haystack=[], $needle='', $key=''){ /* * @param array, string, string * @return string|int, bool */ foreach ($haystack as $k=>$v){ if ( isset( $v[$key] ) && $v[$key]==$needle ){ return $k; } } return FALSE; } function ihc_is_array_value_multi_exists($haystack=array(), $needle='', $key=''){ /* * @param array, string, string * @return int */ $c = 0; foreach ($haystack as $k=>$v){ if ($v[$key]==$needle){ $c++; } } return $c; } function ihc_array_key_recursive($arr=[], $key=null){ /* * @param array, string|int * @return string|int, bool */ foreach ($arr as $k=>$v){ if (array_key_exists($key, $v)){ return $k; } } return FALSE; } function ihc_correct_text( $str='', $wp_editor_content=false, $escAttr=false ) { /* * @param string, bool * @return string */ $str = stripcslashes( htmlspecialchars_decode( $str ) ); if ( $escAttr ){ $str = esc_attr( $str ); } if ($wp_editor_content){ return ihc_format_str_like_wp($str); } return $str; } ///////////forms utility function indeed_create_form_element($attr=array()){ /* * @param string * @return string */ foreach (array('name', 'id', 'value', 'class', 'other_args', 'disabled', 'placeholder', 'multiple_values', 'user_id', 'sublabel') as $k){ if (!isset($attr[$k])){ $attr[$k] = ''; } } $str = ''; if (isset($attr['type']) && $attr['type']){ switch ($attr['type']){ case 'text': case 'conditional_text': $id_field = (isset($attr['id']) && $attr['id'] != "" ) ? 'id="'.$attr['id'].'"' : ''; $str = '<input type="text" name="'.$attr['name'].'" '. $id_field .' class="'.$attr['class'].'" value="' . ihc_correct_text($attr['value'], false, true ) . '" placeholder="'.$attr['placeholder'].'" '.$attr['other_args'].' '.$attr['disabled'].' />'; if (!empty($attr['sublabel'])){ $str .= '<label class="iump-form-sublabel">' . ihc_correct_text($attr['sublabel']) . '</label>'; } break; case 'number': foreach (array('max', 'min') as $k){ if (!isset($attr[$k])){ $attr[$k] = ''; } } $id_field = (isset($attr['id']) && $attr['id'] != "" ) ? 'id="'.$attr['id'].'"' : ''; $str = '<input type="number" name="'.$attr['name'].'" '. $id_field .' class="'.$attr['class'].'" value="'.$attr['value'].'" '.$attr['other_args'].' '.$attr['disabled'].' min="' . $attr['min'] . '" max="' . $attr['max'] . '" />'; if (!empty($attr['sublabel'])){ $str .= '<label class="iump-form-sublabel">' . ihc_correct_text($attr['sublabel']) . '</label>'; } break; case 'textarea': $id_field = (isset($attr['id']) && $attr['id'] != "" ) ? 'id="'.$attr['id'].'"' : ''; $str = '<textarea name="'.$attr['name'].'" '. $id_field .' class="iump-form-textarea '.$attr['class'].'" '.$attr['other_args'].' '.$attr['disabled'].' >' . ihc_correct_text($attr['value'], false, true ) . '</textarea>'; if (!empty($attr['sublabel'])){ $str .= '<label class="iump-form-sublabel">' . ihc_correct_text($attr['sublabel']) . '</label>'; } break; case 'password': global $wp_version; wp_register_script( 'ihc_passwordStrength', IHC_URL . 'assets/js/passwordStrength.js', ['jquery'], 10.1 ); wp_enqueue_style( 'dashicons' ); if ( version_compare ( $wp_version , '5.7', '>=' ) ){ wp_localize_script( 'ihc_passwordStrength', 'ihcPasswordStrengthLabels', array( esc_html__('Very Weak', 'ihc'), esc_html__('Weak', 'ihc'), esc_html__('Good', 'ihc'), esc_html__('Strong', 'ihc') ) ); } else { wp_localize_script( 'ihc_passwordStrength', 'ihcPasswordStrengthLabels', json_encode( array( esc_html__('Very Weak', 'ihc'), esc_html__('Weak', 'ihc'), esc_html__('Good', 'ihc'), esc_html__('Strong', 'ihc')) ) ); } wp_enqueue_script('ihc_passwordStrength'); $ruleOne = (int)get_option('ihc_register_pass_min_length'); $ruleTwo = (int)get_option('ihc_register_pass_options'); $id_field = (isset($attr['id']) && $attr['id'] != "" ) ? 'id="'.$attr['id'].'"' : ''; $str .= '<input type="password" name="'.$attr['name'].'" '. $id_field .' class="'.$attr['class'].'" value="'.$attr['value'].'" placeholder="'.$attr['placeholder'].'" '.$attr['other_args'].' data-rules="' . $ruleOne . ',' . $ruleTwo . '"/>'; $str .= '<span type="button" class="ihc-hide-pw hide-if-no-js" data-toggle="0" aria-label="Show password"> <span class="dashicons dashicons-visibility" aria-hidden="true"></span> </span>'; $str .= '<div class="ihc-strength-wrapper">'; $str .= '<ul class="ihc-strength"><li class="point"></li><li class="point"></li><li class="point"></li><li class="point"></li><li class="point"></li></ul>'; $str .= '<div class="ihc-strength-label"></div>'; $str .= '</div>'; if (!empty($attr['sublabel'])){ $str .= '<label class="iump-form-sublabel">' . ihc_correct_text($attr['sublabel']) . '</label>'; } break; case 'hidden': $id_field = (isset($attr['id']) && $attr['id'] != "" ) ? 'id="'.$attr['id'].'"' : ''; $str = '<input type="hidden" name="'.$attr['name'].'" '. $id_field .' class="'.$attr['class'].'" value="'.$attr['value'].'" '.$attr['other_args'].' />'; break; case 'single_checkbox': $str = ""; $checked = empty($attr['value']) ? '' : 'checked'; $str .= '<div class="ihc-tos-wrap" id="' . $attr['id'] . '">' . '<input type="checkbox" value="1" name="' . $attr['name'] . '" class="' . $attr['class'] . '" '.$checked.' />' . $attr['label']; if (!empty($attr['sublabel'])){ $str .= '<label class="iump-form-sublabel">' . ihc_correct_text($attr['sublabel']) . '</label>'; } $str .= '</div>'; break; case 'checkbox': $str = ''; if ($attr['multiple_values']){ $id = 'ihc_checkbox_parent_' . rand(1,1000); $str .= '<div class="iump-form-checkbox-wrapper" id="' . $id . '">'; foreach ($attr['multiple_values'] as $v){ if (is_array($attr['value'])){ $checked = (in_array($v, $attr['value'])) ? 'checked' : ''; } else { $checked = ($v==$attr['value']) ? 'checked' : ''; } $id_field = (isset($attr['id']) && $attr['id'] != "" ) ? 'id="'.$attr['id'].'"' : ''; $str .= '<div class="iump-form-checkbox">'; $str .= '<input type="checkbox" name="'.$attr['name'].'[]" '. $id_field .' class="'.$attr['class'].'" value="' . ihc_correct_text($v, false, true ) . '" '.$checked.' '.$attr['other_args'].' '.$attr['disabled'].' />'; $str .= ihc_correct_text($v); $str .= '</div>'; } $str .= '</div>'; } if (!empty($attr['sublabel'])){ $str .= '<label class="iump-form-sublabel">' . ihc_correct_text($attr['sublabel']) . '</label>'; } break; case 'radio': $str = ''; if ($attr['multiple_values']){ $id = 'ihc_radio_parent_' . rand(1,1000); $str .= '<div class="iump-form-radiobox-wrapper" id="' . $id . '">'; foreach ($attr['multiple_values'] as $v){ $checked = ($v==$attr['value']) ? 'checked' : ''; $id_field = (isset($attr['id']) && $attr['id'] != "" ) ? 'id="'.$attr['id'].'"' : ''; $str .= '<div class="iump-form-radiobox">'; $str .= '<input type="radio" name="'.$attr['name'].'" '. $id_field .' class="'.$attr['class'].'" value="' . ihc_correct_text( $v, false, true ) . '" '.$checked.' '.$attr['other_args'].' '.$attr['disabled'].' />'; $str .= ihc_correct_text($v); $str .= '</div>'; } $str .= '</div>'; } if (!empty($attr['sublabel'])){ $str .= '<label class="iump-form-sublabel">' . ihc_correct_text($attr['sublabel']) . '</label>'; } break; case 'select': $str = ''; $id_field = (isset($attr['id']) && $attr['id'] != "" ) ? 'id="'.$attr['id'].'"' : ''; if ($attr['multiple_values']){ $str .= '<select name="'.$attr['name'].'" '. $id_field .' class="iump-form-select '.$attr['class'].'" '.$attr['other_args'].' '.$attr['disabled'].' >'; if ($attr['multiple_values']){ foreach ($attr['multiple_values'] as $k=>$v){ $selected = ($k==$attr['value']) ? 'selected' : ''; $str .= '<option value="'.$k.'" '.$selected.'>' . ihc_correct_text( $v, false, true ) . '</option>'; } } $str .= '</select>'; } if (!empty($attr['sublabel'])){ $str .= '<label class="iump-form-sublabel">' . ihc_correct_text($attr['sublabel']) . '</label>'; } break; case 'multi_select': $str = ''; $id_field = (isset($attr['id']) && $attr['id'] != "" ) ? 'id="'.$attr['id'].'"' : ''; if ($attr['multiple_values']){ $str .= '<select name="'.$attr['name'].'[]" '. $id_field .' class="iump-form-multiselect '.$attr['class'].'" '.$attr['other_args'].' '.$attr['disabled'].' multiple>'; foreach ($attr['multiple_values'] as $k=>$v){ if (is_array($attr['value'])){ $selected = (in_array($v, $attr['value'])) ? 'selected' : ''; } else { $selected = ($v==$attr['value']) ? 'selected' : ''; } $str .= '<option value="'.$k.'" '.$selected.'>' . ihc_correct_text( $v, false, true ) . '</option>'; } $str .= '</select>'; } if (!empty($attr['sublabel'])){ $str .= '<label class="iump-form-sublabel">' . ihc_correct_text($attr['sublabel']) . '</label>'; } break; case 'submit': $id_field = (isset($attr['id']) && $attr['id'] != "" ) ? 'id="'.$attr['id'].'"' : ''; $str = '<input type="submit" value="' . ihc_correct_text( $attr['value'], false, true ) . '" name="'.$attr['name'].'" '. $id_field .' class="'.$attr['class'].'" '.$attr['other_args'].' '.$attr['disabled'].' />'; if (!empty($attr['sublabel'])){ $str .= '<label class="iump-form-sublabel">' . ihc_correct_text($attr['sublabel']) . '</label>'; } break; case 'date': wp_enqueue_script('jquery-ui-datepicker'); if (empty($attr['class'])){ $attr['class'] = 'ihc-date-field'; } $str = ''; global $ihc_jquery_ui_min_css; if (empty($ihc_jquery_ui_min_css)){ $ihc_jquery_ui_min_css = TRUE; $str .= '<link rel="stylesheet" type="text/css" href="' . IHC_URL . 'admin/assets/css/jquery-ui.min.css"/>' ; } if (empty($attr['callback'])){ $attr['callback'] = ''; } $str .= '<span class="ihc-js-datepicker-data" data-selector=".'.$attr['class'].'" data-callback="' . $attr['callback'] . '"></span>'; $str .= '<input type="text" value="'.$attr['value'].'" name="'.$attr['name'].'" id="'.$attr['id'].'" class="iump-form-datepicker '.$attr['class'].'" '.$attr['other_args'].' '.$attr['disabled'].' placeholder="'.$attr['placeholder'].'" />'; if (!empty($attr['sublabel'])){ $str .= '<label class="iump-form-sublabel">' . ihc_correct_text($attr['sublabel']) . '</label>'; } break; case 'file': wp_enqueue_script( 'ihc-jquery_form_module' ); wp_enqueue_script( 'ihc-jquery_upload_file' ); $upload_settings = ihc_return_meta_arr('extra_settings'); $max_size = $upload_settings['ihc_upload_max_size'] * 1000000; $rand = rand(1,10000); //$ajaxURL = IHC_URL . 'public/ajax-upload.php?ihcpublicn=' . wp_create_nonce( 'ihcpublicn' ); $ajaxURL = get_site_url() . '/wp-admin/admin-ajax.php?action=ihc_ajax_public_upload_file&ihcpublicn=' . wp_create_nonce( 'ihcpublicn' ); $str .= '<div id="ihc_fileuploader_wrapp_' . $rand . '" class="ihc-wrapp-file-upload ihc-wrapp-file-field">'; $str .= '<div class="ihc-file-upload ihc-file-upload-button">' . esc_html__("Upload", 'ihc') . '</div> <span class="ihc-js-upload-file-public-data" data-rand="' . $rand . '" data-url="' . $ajaxURL . '" data-max_size="' . $max_size . '" data-allowed_types="' . $upload_settings['ihc_upload_extensions'] . '" data-name="' . $attr['name'] . '" data-remove_label="' . esc_html__( 'Remove', 'ihc' ) . '" data-alert_text="' . esc_html__("To add a new file please remove the previous one!", 'ihc') . '" ></span>'; if ($attr['value']){ $attachment_type = ihc_get_attachment_details($attr['value'], 'extension'); $url = wp_get_attachment_url($attr['value']); switch ($attachment_type){ case 'jpg': case 'jpeg': case 'png': case 'gif': //print the picture $str .= '<img src="' . $url . '" class="ihc-member-photo" /><div class="ihc-clear"></div>'; break; default: //default file type $str .= '<div class="ihc-icon-file-type"></div>'; break; } $attachment_name = ihc_get_attachment_details($attr['value']); $str .= '<div class="ihc-file-name-uploaded"><a href="' . $url . '" target="_blank">' . $attachment_name . '</a></div>'; $str .= '<div onClick=\'ihcDeleteFileViaAjax(' . $attr['value'] . ', '.$attr['user_id'].', "#ihc_fileuploader_wrapp_' . $rand . '", "' . $attr['name'] . '", "#ihc_upload_hidden_' . $rand . '");\' class="ihc-delete-attachment-bttn">Remove</div>'; } $str .= '<input type="hidden" value="'.$attr['value'].'" name="' . $attr['name'] . '" id="ihc_upload_hidden_'.$rand.'" />'; $str .= "</div>"; if (!empty($attr['sublabel'])){ $str .= '<label class="iump-form-sublabel">' . ihc_correct_text($attr['sublabel']) . '</label>'; } break; case 'upload_image': $data = $attr; $data['rand'] = rand(1, 10000); $data['imageClass'] = 'ihc-member-photo'; if (empty($data['user_id'])){ $data['user_id'] = -1; } $data['imageUrl'] = ''; if ( !empty($data['value']) ){ if (strpos($data['value'], "http")===0){ $data['imageUrl'] = $data['value']; } else { $tempData = \Ihc_Db::getMediaBaseImage($data['value']); if (!empty($tempData)){ $data['imageUrl'] = $tempData; } } } $viewObject = new \Indeed\Ihc\IndeedView(); $str = $viewObject->setTemplate(IHC_PATH.'public/views/upload_image.php')->setContentData( $data )->getOutput(); break; case 'plain_text': $str = ihc_correct_text( $attr['value'] ); if (!empty($attr['sublabel'])){ $str .= '<label class="iump-form-sublabel">' . ihc_correct_text($attr['sublabel']) . '</label>'; } break; case 'unique_value_text': if (empty($attr['id'])){ $attr['id'] = $attr['name'] . '_' . 'unique'; } $str = '<input type="text" data-search-unique="true" onBlur="ihcCheckUniqueValueField(\'' . $attr['name'] . '\');" name="'.$attr['name'].'" id="'.$attr['id'].'" class="'.$attr['class'].'" value="' . ihc_correct_text( $attr['value'], false, true ) . '" placeholder="'.$attr['placeholder'].'" '.$attr['other_args'].' '.$attr['disabled'].' />'; if (!empty($attr['sublabel'])){ $str .= '<label class="iump-form-sublabel">' . ihc_correct_text($attr['sublabel']) . '</label>'; } break; case 'ihc_country': wp_enqueue_style( 'ihc_select2_style' ); wp_enqueue_script( 'ihc-select2' ); if (empty($attr['id'])){ $attr['id'] = $attr['name'] . '_field'; } $countries = ihc_get_countries(); $update_cart = 'ihcUpdateCart();'; if (isset($attr['form_type']) && $attr['form_type']=='edit'){ $update_cart = ''; } $onchange = 'onChange="ihcUpdateStateField( true );'; if (!isset($attr['is_public']) || $attr['is_public']===FALSE){ $onchange = 'onChange="ihcUpdateStateField();'; } if (isset($attr['ihc_form_type']) && $attr['ihc_form_type']=='edit'){ $onchange = 'onChange="ihcUpdateStateField();'; } $onchange .= $update_cart; $onchange .= '"'; if ( empty( $attr['value'] ) ){ $attr['value'] = ihcGetDefaultCountry(); } $str .= '<select name="' . $attr['name'] . '" id="' . $attr['id'] . '" ' . $onchange . ' >'; /// onChange="ihc_update_tax_field(); foreach ($countries as $k=>$v): $selected = ($attr['value']==$k) ? 'selected' : ''; $str .= '<option value="' . $k . '" ' . $selected . '>' . $v . '</option>'; endforeach; $str .= '</select>'; if (!empty($attr['sublabel'])){ $str .= '<label class="iump-form-sublabel">' . ihc_correct_text($attr['sublabel']) . '</label>'; } $str .= '<ul id="ihc_countries_list_ul" class="ihc-display-none">'; $str .= '</ul>'; if ( empty( $attr['is_modal'] ) ){ $str .= ' <span class="ihc-js-countries-list-data" data-selector="#' . $attr['id'] . '" data-placeholder="' . esc_html__( "Select Your Country", 'ihc' ) . '" ></span>'; } break; case 'ihc_state': $defaultCountry = get_option( 'ihc_default_country', false ); if ( $defaultCountry !== false && $defaultCountry !== '' ){ $str = ihc_get_state_field_str( $defaultCountry, $attr ); } else { $str = '<input type="text" onBlur="ihcUpdateCart();" name="' . $attr['name'] . '" id="' . $attr['id'] . '" class="' . $attr['class'] . '" value="' . ihc_correct_text($attr['value']) . '" placeholder="' . $attr['placeholder'] . '" ' . $attr['other_args'] . ' ' . $attr['disabled'] . ' />'; } if (!empty($attr['sublabel'])){ $str .= '<label class="iump-form-sublabel">' . ihc_correct_text($attr['sublabel']) . '</label>'; } break; case 'ihc_invitation_code_field': $str = '<input type="text" onBlur="ihcCheckInvitationCode();" name="ihc_invitation_code_field" id="ihc_invitation_code_field" class="'.$attr['class'].'" value="' . ihc_correct_text($attr['value']) . '" placeholder="'.$attr['placeholder'].'" '.$attr['other_args'].' '.$attr['disabled'].' />'; if (!empty($attr['sublabel'])){ $str .= '<label class="iump-form-sublabel">' . ihc_correct_text($attr['sublabel']) . '</label>'; } break; case 'ihc_dynamic_price': if (strcmp($attr['form_type'], 'create')===0 && ihc_is_magic_feat_active('level_dynamic_price') && !empty($attr['lid'])){ /// only for create $lid = $attr['lid']; $temp_settings = ihc_return_meta_arr('level_dynamic_price');//getting metas if (!empty($temp_settings['ihc_level_dynamic_price_levels_on'][$lid])){ //$temp_level_data = \Indeed\Ihc\Db\Memberships::getAll(); $levelData = \Indeed\Ihc\Db\Memberships::getOne( $lid ); $level_price = isset($levelData['price']) ? $levelData['price'] : 0; $min = isset($temp_settings['ihc_level_dynamic_price_levels_min'][$lid]) && $temp_settings['ihc_level_dynamic_price_levels_min'][$lid]!='' ? $temp_settings['ihc_level_dynamic_price_levels_min'][$lid] : 0; $max = isset($temp_settings['ihc_level_dynamic_price_levels_max'][$lid]) && $temp_settings['ihc_level_dynamic_price_levels_max'][$lid]!='' ? $temp_settings['ihc_level_dynamic_price_levels_max'][$lid] : $level_price; $step = isset($temp_settings['ihc_level_dynamic_price_step']) ? $temp_settings['ihc_level_dynamic_price_step'] : 0.01; $str .= "<input type='number' onChange='ihcDynamicPriceUpdateGlobal();' onBlur='ihcDynamicPriceUpdateGlobal();' min='$min' max='$max' class='{$attr['class']}' step='$step' value='$level_price' name='ihc_dynamic_price' id='ihc_dynamic_price' />"; } } break; } } return $str; } function ihc_from_simple_array_to_k_v($arr=[]){ /* * @param array * @return array */ $return_arr = array(); foreach ($arr as $v){ $return_arr[$v] = $v; } return $return_arr; } function indeed_form_start($action=false, $method=false, $other_stuff=''){ /* * @param bool, bool, string * @return string */ $str = '<form '; if($action){ $str .= 'action="'.$action.'""'; } else $str .= ''; $str .= ' method="'; if($method){ $str .= $method; } else $str .= 'post'; $str .= '" '; $str .= $other_stuff; $str .= '>'; return $str; } function indeed_form_end(){ /* * @param none * @return string */ return '</form>'; } function ihc_reorder_arr($arr=[]){ /* * @param array * @return array */ if (isset($arr) && is_array($arr) && count($arr)>0 && $arr !== false){ $new_arr = false; foreach ($arr as $k=>$v){ $order = isset( $v['the_order'] ) ? $v['the_order'] : false; if ( $order === false ){ /// deprecated $order = isset( $v['order'] ) ? $v['order'] : false; } while (!empty($new_arr[$order])){ $order++; } $new_arr[$order][$k] = $v; } if ($new_arr && count($new_arr)){ ksort($new_arr); foreach ($new_arr as $k=>$v){ $return_arr[key($v)] = $v[key($v)]; } return $return_arr; } } return $arr; } function ihc_check_show($arr=array()){ /* * @param array * @return array */ if ($arr!==FALSE && count($arr)>0){ $new_arr = array(); foreach ($arr as $k=>$v){ if (isset($v['show_on'])){ if($v['show_on'] == 1){ $new_arr[$k] = $v; } } else { $new_arr[$k] = $v; } } return $new_arr; } return $arr; } function ihc_check_level_restricted_conditions($levels=array()){ /* * @param array * @return array */ $metas = ihc_return_meta_arr('level_subscription_plan_settings'); if (!empty($metas['ihc_level_subscription_plan_settings_enabled']) && $levels){ global $current_user; $uid = (empty($current_user->ID)) ? 0 : $current_user->ID; if (empty($uid)){ /// will check only for unreg foreach ($levels as $id=>$level){ if (empty($metas['ihc_level_subscription_plan_settings_restr_levels']) || empty($metas['ihc_level_subscription_plan_settings_restr_levels'][$id])){ continue; } else { /// CHECK IF MUST BLOCK THIS LEVEL if ($metas['ihc_level_subscription_plan_settings_condt'] && !empty($metas['ihc_level_subscription_plan_settings_condt'][$id])){ $array_check = explode(',', $metas['ihc_level_subscription_plan_settings_condt'][$id]); if (in_array('unreg', $array_check)){ unset($levels[$id]); } } } } } else { $user_bought_something = Ihc_Db::does_this_user_bought_something($uid); $user_levels = \Indeed\Ihc\UserSubscriptions::getAllForUser( $uid ); foreach ($levels as $id=>$level){ if (empty($metas['ihc_level_subscription_plan_settings_restr_levels']) || empty($metas['ihc_level_subscription_plan_settings_restr_levels'][$id])){ continue; } else { /// CHECK IF MUST BLOCK THIS LEVEL if ($metas['ihc_level_subscription_plan_settings_condt'] && !empty($metas['ihc_level_subscription_plan_settings_condt'][$id])){ $array_check = explode(',', $metas['ihc_level_subscription_plan_settings_condt'][$id]); if (!$user_bought_something && in_array('no_pay', $array_check)){ unset($levels[$id]); } foreach ($user_levels as $current_level=>$current_level_data){ if (in_array($current_level, $array_check)){ unset($levels[$id]); } } } } } } } return $levels; } function ihc_return_cc_list($ips_cc_user='', $ips_cc_pass=''){ /* * @param string, string * @return array */ if (!class_exists('cc')){ include_once IHC_PATH .'classes/services/email_services/constantcontact/class.cc.php'; } $list = array(); $cc = new cc($ips_cc_user, $ips_cc_pass); $lists = $cc->get_lists('lists'); if ($lists){ foreach ((array) $lists as $v){ $list[$v['id']] = array('name' => $v['Name']); } } return $list; } function ihc_get_all_post_types(){ /* * use this in front-end, returns all the custom post type available in db * @param none * @return array */ global $wpdb; $arr = array(); $data = $wpdb->get_results('SELECT DISTINCT post_type FROM ' . $wpdb->prefix . 'posts WHERE post_status="publish";'); if ($data && count($data)){ foreach ($data as $obj){ $arr[] = $obj->post_type; } $exclude = array('bp-email', 'edd_log', 'nav_menu_item', 'bp-email'); foreach ($exclude as $e){ if ($k=array_search($e, $arr)){ unset($arr[$k]); unset($k); } } } return $arr; } function ihc_get_post_types_be(){ /* * @param none * @return all custom post type that are registered * use this for back-end actions */ $args = array('public'=>true, '_builtin'=>false); $data = get_post_types($args); if (!function_exists('is_plugin_active')){ include_once ABSPATH . 'wp-admin/includes/plugin.php'; } if (is_plugin_active('download-monitor/download-monitor.php')){ $data[] = 'dlm_download'; } return $data; } function ihc_get_post_id_by_cpt_name($custom_post_type='', $post_name=''){ /* * @param string, string * @return int (id of post, >0 ) */ global $wpdb; $table = $wpdb->prefix . 'posts'; $q = $wpdb->prepare("SELECT ID FROM $table WHERE post_type=%s AND post_name=%s ", $custom_post_type, $post_name); $data = $wpdb->get_row($q); if (!empty($data->ID)){ return $data->ID; } return FALSE; } function ihc_get_wp_roles_list(){ /* * @param none * @return array with all wp roles available without administrator */ global $wp_roles; $roles = $wp_roles->get_names(); if (!empty($roles)){ unset($roles['administrator']);// remove admin role from our list return $roles; } return FALSE; } function ihc_get_multiply_time_value($time_type=''){ /* * @param string D,W,M,Y * @return time in seconds */ $multiply = FALSE; switch ($time_type){ case 'D': $multiply = 60*60*24; break; case 'W': $multiply = 60*60*24*7; break; case 'M': $multiply = 60*60*24*31; break; case 'Y': $multiply = 60*60*24*365; break; } return $multiply; } function ihc_insert_update_transaction($u_id=null, $txn_id=null, $post_data=null, $dont_save_order=FALSE){ /* * @param user id, trascation id, post data from paypal * @return none */ //remove quotes from post data foreach ($post_data as $k=>$v){ if (is_string($post_data[$k])){ if (strpos($post_data[$k], "'")!==FALSE){ $post_data[$k] = stripslashes($post_data[$k]); $post_data[$k] = str_replace("'", "", $post_data[$k]); } else if (strpos($post_data[$k], "\'")!==FALSE){ $post_data[$k] = stripslashes($post_data[$k]); $post_data[$k] = str_replace("\'", "", $post_data[$k]); } } } global $wpdb; $table = $wpdb->prefix . 'indeed_members_payments'; $q = $wpdb->prepare("SELECT id,txn_id,u_id,payment_data,history,orders,paydate FROM $table WHERE txn_id=%s;", $txn_id); $exists = $wpdb->get_row($q); if ($exists){ /************** UPDATE ***************/ $history = ''; $q = $wpdb->prepare("SELECT history FROM $table WHERE txn_id=%s ;", $txn_id); $history_data = $wpdb->get_row($q); if ($history_data && isset($history_data->history)){ $history = (isset($history_data->history)) ? unserialize($history_data->history) : ''; } else { $q = $wpdb->prepare("SELECT payment_data FROM $table WHERE txn_id=%s;", $txn_id); $history_data = $wpdb->get_row($q); if (isset($history_data->payment_data)){ $temp = (array)json_decode($history_data->payment_data); if (isset($temp['custom'])){ unset($temp['custom']); } if (isset($temp['transaction_subject'])){ unset($temp['transaction_subject']); } $history[] = $temp; } } //remove custom from history $post_data_history = $post_data; if (isset($post_data_history['custom'])){ unset($post_data_history['custom']); } if (isset($post_data_history['transaction_subject'])){ unset($post_data_history['transaction_subject']); } $history[indeed_get_unixtimestamp_with_timezone()] = $post_data_history; $history_string = serialize($history); $q = $wpdb->prepare("UPDATE $table SET history=%s WHERE txn_id=%s ", $history_string, $txn_id); $wpdb->query($q); //////////update payment_data (last $_REQUEST ) $post_data = json_encode($post_data); $q = $wpdb->prepare("UPDATE $table SET payment_data=%s WHERE txn_id=%s ", $post_data, $txn_id); $wpdb->query($q); } else { /************* insert ************/ /////the history $post_data_history = $post_data; if (isset($post_data_history['custom'])){ unset($post_data_history['custom']); } if (isset($post_data_history['transaction_subject'])){ unset($post_data_history['transaction_subject']); } $history[ indeed_get_unixtimestamp_with_timezone() ] = $post_data_history; $history_str = serialize($history); ////the payment data $post_data = json_encode($post_data); /// since version 8.6, before we used NOW() function in mysql $currentDate = indeed_get_current_time_with_timezone(); $q = $wpdb->prepare("INSERT INTO $table VALUES (null, %s, %d, %s, %s, null, %s );", $txn_id, $u_id, $post_data, $history_str, $currentDate ); $wpdb->query($q); } if ($dont_save_order){ return; } /// ORDER require_once IHC_PATH . 'classes/Orders.class.php'; $object = new Ump\Orders(); $object->do_insert_update($txn_id); } function ihc_insert_update_order($uid=0, $lid=0, $amount_value=0, $status='pending', $payment_gateway='', $extra_fields=array(), $amount_type=''){ /* * @param int, int, float, string * @return int */ if (!empty($uid) && isset($lid) && isset($amount_value)){ require_once IHC_PATH . 'classes/Orders.class.php'; $object = new Ump\Orders(); if (empty($amount_type)){ $amount_type = get_option('ihc_currency'); } $order_id = $object->do_insert(array( 'uid' => $uid, 'lid' => $lid, 'amount_type' => $amount_type, 'amount' => $amount_value, 'status' => $status, 'ihc_payment_type' => $payment_gateway, 'extra_fields' => $extra_fields, )); return $order_id; } } function ihc_insert_debug_payment_log($source, $data){ /* * insert into ihc_debug_payments * @param source = type of payment service (paypall) * data = the request from payment service * @return none */ global $wpdb; $table = $wpdb->prefix . "ihc_debug_payments"; $time = indeed_get_current_time_with_timezone(); $data = serialize($data); $q = $wpdb->prepare("INSERT INTO $table VALUES(null, %s, %s, %s);", $source, $data, $time ); $wpdb->query($q); } /* * Depreacated * main function for notification module * send e-mail to user * @param: * user id ($u_id) - int, * notification type ($notification_type) - string * optional level id ($l_id) - int, -1 means all levels * dynamic_data - array * subject - string * message - string * @return TRUE if mail was sent, FALSE otherwise */ function ihc_send_user_notifications($u_id=FALSE, $notification_type='', $l_id=FALSE, $dynamic_data=array(), $subject='', $message=''){ global $wpdb; $sent = FALSE; if ($u_id && $notification_type){ $admin_case = array( 'admin_user_register', 'admin_before_user_expire_level', 'admin_second_before_user_expire_level', 'admin_third_before_user_expire_level', 'admin_user_expire_level', 'admin_user_payment', 'admin_user_profile_update', 'ihc_cancel_subscription_notification-admin', 'ihc_delete_subscription_notification-admin', 'ihc_order_placed_notification-admin', 'ihc_new_subscription_assign_notification-admin', ); if (empty($subject) || empty($message)){ /// SEARCH INTO DB FOR NOTIFICATION TEMPLATE if ($l_id!==FALSE && $l_id>-1){ $q = $wpdb->prepare("SELECT id,notification_type,level_id,subject,message,pushover_message,pushover_status,status FROM " . $wpdb->prefix . "ihc_notifications WHERE 1=1 AND notification_type=%s AND level_id=%d ORDER BY id DESC LIMIT 1;", $notification_type, $l_id); $data = $wpdb->get_row($q); if ($data){ $subject = (isset($data->subject)) ? $data->subject : ''; $message = (isset($data->message)) ? $data->message : ''; $domain = 'ihc'; $languageCode = get_user_meta( $u_id, 'ihc_locale_code', true ); $wmplName = $notification_type . '_title_' . $l_id; $subject = apply_filters( 'wpml_translate_single_string', $subject, $domain, $wmplName, $languageCode ); $wmplName = $notification_type . '_message_' . $l_id; $message = apply_filters( 'wpml_translate_single_string', $message, $domain, $wmplName, $languageCode ); } } if ($l_id===FALSE || $l_id==-1 || empty($data)){ $q = $wpdb->prepare("SELECT id,notification_type,level_id,subject,message,pushover_message,pushover_status,status FROM " . $wpdb->prefix . "ihc_notifications WHERE 1=1 AND notification_type=%s AND level_id='-1' ORDER BY id DESC LIMIT 1;", $notification_type); $data = $wpdb->get_row($q); if ($data){ $subject = (isset($data->subject)) ? $data->subject : ''; $message = (isset($data->message)) ? $data->message : ''; $domain = 'ihc'; $languageCode = get_user_meta( $u_id, 'ihc_locale_code', true ); $wmplName = $notification_type . '_title_-1'; $subject = apply_filters( 'wpml_translate_single_string', $subject, $domain, $wmplName, $languageCode ); $wmplName = $notification_type . '_message_-1'; $message = apply_filters( 'wpml_translate_single_string', $message, $domain, $wmplName, $languageCode ); } } } if (!empty($message)){ $from_name = get_option('ihc_notification_name'); if (!$from_name){ $from_name = get_option("blogname"); } //user levels $level_list_data = \Indeed\Ihc\UserSubscriptions::getAllForUserAsList( $u_id ); if (isset($level_list_data)){ $level_list_data = explode(',', $level_list_data); foreach ($level_list_data as $id){ $temp_level_data = ihc_get_level_by_id($id); if ( isset( $temp_level_data['label'] ) ){ $level_list_arr[] = $temp_level_data['label']; } } if ( !empty( $level_list_arr ) ){ $level_list = implode(',', $level_list_arr); } } //user data $u_data = get_userdata($u_id); $user_email = ''; if ($u_data && !empty($u_data->data) && !empty($u_data->data->user_email)){ $user_email = $u_data->data->user_email; } //from email $from_email = get_option('ihc_notification_email_from'); if (!$from_email){ $from_email = get_option('admin_email'); } $message = ihc_replace_constants($message, $u_id, $l_id, $l_id, $dynamic_data); $subject = ihc_replace_constants($subject, $u_id, $l_id, $l_id, $dynamic_data); $message = stripslashes(htmlspecialchars_decode(ihc_format_str_like_wp($message))); $message = apply_filters('ihc_send_notification_filter_message', $message, $u_id, $l_id, $notification_type); // @description Filter for notification message. @param the message (text), user id (integer), level id (integer), notification type (string) $message = "<html><head></head><body>" . $message . "</body></html>"; if ($subject && $message && $user_email){ if (in_array($notification_type, $admin_case)){ /// SEND NOTIFICATION TO ADMIN, (we change the destination) $admin_email = get_option('ihc_notification_email_addresses'); if (empty($admin_email)){ $user_email = get_option('admin_email'); } else { $user_email = $admin_email; } } if (!empty($from_email) && !empty($from_name)){ $headers[] = "From: $from_name <$from_email>"; } $headers[] = 'Content-Type: text/html; charset=UTF-8'; $sent = wp_mail($user_email, $subject, $message, $headers); } } /// PUSHOVER if (ihc_is_magic_feat_active('pushover')){ $send_to_admin = in_array($notification_type, $admin_case) ? TRUE : FALSE; require_once IHC_PATH . 'classes/services/Ihc_Pushover.class.php'; $pushover_object = new Ihc_Pushover(); $pushover_object->send_notification($u_id, $l_id, $notification_type, $send_to_admin); } /// PUSHOVER } return $sent; } function ihc_get_uid_lid_by_stripe($stripe_txn_id=''){ /* * @param transaction id - string * @return array */ global $wpdb; $q = $wpdb->prepare("SELECT id,txn_id,u_id,payment_data,history,orders,paydate FROM " . $wpdb->prefix ."indeed_members_payments WHERE `txn_id`=%s ;", $stripe_txn_id); $db_data = $wpdb->get_row($q); $data = array(); if ($db_data){ if (isset($db_data->u_id)){ $data['uid'] = $db_data->u_id; } if (isset($db_data->payment_data)){ $data_db_json = json_decode($db_data->payment_data, TRUE); if (isset($data_db_json['level'])){ $data['lid'] = $data_db_json['level']; } $data['payment_data'] = $data_db_json; } } return $data; } function ihc_get_lid_uid_by_txn_id($txn_id=''){ /* * @param string * @return array */ global $wpdb; $table = $wpdb->prefix . "indeed_members_payments"; $q = $wpdb->prepare("SELECT payment_data FROM $table WHERE txn_id=%s;", $txn_id); $data = $wpdb->get_row($q); if ($data && !empty($data->payment_data)){ $temp = json_decode($data->payment_data, TRUE); return $temp; } return array(); } function ihc_print_bank_transfer_order($u_id, $l_id){ /* * print the bank transfer message * @param int, int, string, int * @return string */ $msg = get_option('ihc_bank_transfer_message'); if (!empty($_GET['cp'])){ $discount_type = 'percentage'; $discount_value = $_GET['cp']; } else if (!empty($_GET['cc'])) { $discount_type = 'flat'; $discount_value = $_GET['cc']; } //get amount $level_data = ihc_get_level_by_id($l_id); $orderId = \Ihc_Db::getLastOrderIdByUserAndLevel( $u_id, $l_id ); $orderAmount = \Ihc_Db::getOrderAmount( $orderId ); $amount = isset( $orderAmount ) ? $orderAmount : ''; $currency = get_option( 'ihc_currency' ); $amount = ihc_format_price_and_currency( $currency, $amount ); $msg = str_replace('{amount}', $amount, $msg); $msg = str_replace('{currency}', '', $msg); $msg = ihc_replace_constants($msg, $u_id, $l_id, $l_id); return '<div class="ihc-bank-transfer-msg" id="ihc_bt_success_msg">' . ihc_correct_text( $msg, true ) . '</div>'; } function ihc_get_amount_after_discount_for_bt_show($discount_type='', $discount_value=0, $amount=0){ /* * @param string, int, string, int * @return string */ if ($discount_type=='percentage'){ $amount = $amount - ($amount*$discount_value/100); } else { $amount = $amount - $discount_value; } $amount = round($amount, 2); return $amount; } /** * generate csv file with all users * @param none * @return string, link to csv file or empty string */ if ( !function_exists( 'ihc_make_csv_user_list' ) ): function ihc_make_csv_user_list( $attributes=array() ) { global $wpdb; $levelDetails = \Ihc_Db::getLevelsDetails(); $possibles = array( 'search_user', 'levels', 'roles', 'order', 'levelStatus', 'approvelRequest', 'emailVerification', 'advancedOrder', ); $applyFilters = false; foreach ( $possibles as $possible ){ if ( isset( $attributes[$possible] ) ){ $applyFilters = true; } } $searchUsers = new \Indeed\Ihc\Db\SearchUsers(); $searchUsers->setLimit( 0 ) ->setOffset( 0 ) ->setLid( -1 ); if ( $applyFilters ){ $limit = (isset($attributes['ihc_limit'])) ? $attributes['ihc_limit'] : 25; $start = 0; if(isset($attributes['ihcdu_page'])){ $pg = $attributes['ihcdu_page'] - 1; $start = (int)$pg * $limit; } $search_query = isset($attributes['search_user']) ? $attributes['search_user'] : ''; $filter_role = isset($attributes['roles']) ? $attributes['roles'] : ''; $search_level = isset($attributes['levels']) ? $attributes['levels'] : -1; $order = isset($attributes['order']) ? $attributes['order'] : 'user_registered_desc'; // user_registered_desc $approveRequest = isset( $attributes['approvelRequest'] ) && $attributes['approvelRequest'] ? true : false; $advancedOrder = isset( $attributes['advancedOrder'] ) ? $attributes['advancedOrder'] : ''; $levelStatus = isset( $attributes['levelStatus'] ) ? $attributes['levelStatus'] : ''; $emailVerification = isset( $attributes['emailVerification'] ) && $attributes['emailVerification'] ? 1 : 0; $searchUsers = new \Indeed\Ihc\Db\SearchUsers(); $searchUsers->setLimit(0) //->setOffset( $start ) ->setOrder( $order ) ->setLid( $search_level ) ->setSearchWord( $search_query ) ->setRole( $filter_role ) ->setAdvancedOrder( $advancedOrder ) ->setLevelStatus( $levelStatus ) ->setOnlyDoubleEmailVerification( $emailVerification ) ->setApprovelRequest( $approveRequest ); } $users = $searchUsers->getResults(); if ($users){ $hash = bin2hex( random_bytes( 20 ) ); $file_path = IHC_PATH . 'temporary/' . $hash . '.csv'; $file_link = IHC_URL . 'temporary/' . $hash . '.csv'; // remove old files if (file_exists($file_path)){ unlink($file_path); } $directory = IHC_PATH . 'temporary/'; $files = scandir( $directory ); foreach ( $files as $file ){ $fileFullPath = $directory . $file; if ( file_exists( $fileFullPath ) && filetype( $fileFullPath ) == 'file' ){ $extension = pathinfo( $fileFullPath, PATHINFO_EXTENSION ); if ( $extension == 'csv' ){ unlink( $fileFullPath ); } } } // create file $file_resource = fopen($file_path, 'w'); $data[] = esc_html__('User ID', 'ihc'); $register_fields = ihc_get_user_reg_fields(); foreach ($register_fields as $k=>$v){ if ($v['name']=='pass1' || $v['name']=='pass2' || $v['name']=='tos' || $v['name']=='recaptcha' || $v['name']=='confirm_email' || $v['name']=='ihc_social_media' || $v['name'] == 'ihc_dynamic_price' ){ unset($register_fields[$k]); } else { if (isset($v['native_wp']) && $v['native_wp']){ $data[] = esc_html__($v['label'], 'ihc'); } else { $data[] = $v['label']; } } } $data[] = esc_html__('Membership ID', 'ihc'); $data[] = esc_html__('Membership', 'ihc'); $data[] = esc_html__('Start time', 'ihc'); $data[] = esc_html__('Expire time', 'ihc'); $data[] = esc_html__('WP User Roles', 'ihc'); $data[] = esc_html__('Join Date', 'ihc'); /// top of CSV file fputcsv($file_resource, $data, ","); unset($data); global $wpdb; $query = "SELECT user_id "; $exclude = ['pass1', 'pass2', 'tos', 'recaptcha', 'ihc_optin_accept', 'ihc_memberlist_accept', 'confirm_email', 'ihc_dynamic_price', 'ihc_social_media']; foreach ( $register_fields as $v ){ if ( in_array( $v['name'], $exclude ) ){ continue; } $query .= " ,max(case when meta_key = '{$v['name']}' then meta_value end) `{$v['name']}` "; } $query .= " FROM {$wpdb->usermeta} "; foreach ($users as $user){ $the_user_data[] = $user->ID; $userQuery = $query . $wpdb->prepare( " WHERE user_id=%d", $user->ID ); $userMetaArray = $wpdb->get_row( $userQuery, ARRAY_A ); foreach ($register_fields as $v){ if (isset($user->{$v['name']})){ $the_user_data[] = $user->{$v['name']}; } else { if ( isset( $userMetaArray[ $v['name'] ] ) && $userMetaArray[ $v['name'] ]!==FALSE){ if (is_array($userMetaArray[ $v['name'] ])){ $the_user_data[] = implode(",", $userMetaArray[ $v['name'] ]); } else { $the_user_data[] = $userMetaArray[ $v['name'] ]; } } else { $the_user_data[] = ' '; } } } $levels = array(); if ( $user->levels && stripos( $user->levels, ',' ) !== false ){ $levels = explode( ',', $user->levels ); } else { $levels[] = $user->levels; } if ($levels){ /// with levels foreach ($levels as $level_data){ if ( $level_data == -1 ){ /// NO LEVELS $data = $the_user_data; $data[] = '-'; /// Membership ID $data[] = '-'; /// Membership $data[] = '-'; /// start TIME $data[] = '-'; /// Expire TIME $data[] = $user->roles; $data[] = $user->user_registered; fputcsv($file_resource, $data, ","); unset($data); continue; } if ( strpos( $level_data, '|' ) !== false ){ $levelDataArray = explode( '|', $level_data ); } else { $levelDataArray = array(); } $lid = isset( $levelDataArray[0] ) ? $levelDataArray[0] : ''; $level_data = array( 'level_id' => $lid, 'start_time' => isset( $levelDataArray[1] ) ? $levelDataArray[1] : '', 'expire_time' => isset( $levelDataArray[2] ) ? $levelDataArray[2] : '', 'level_slug' => isset( $levelDetails[$lid]['slug'] ) ? $levelDetails[$lid]['slug'] : '', 'label' => isset( $levelDetails[$lid]['label'] ) ? $levelDetails[$lid]['label'] : '', ); $data = $the_user_data; $data[] = $level_data['level_id']; /// Membership ID $data[] = $level_data['label']; /// Membership $data[] = $level_data['start_time']; /// start TIME $data[] = $level_data['expire_time']; /// Expire TIME $data[] = $user->roles; $data[] = $user->user_registered; fputcsv($file_resource, $data, ","); unset($data); } } else { /// NO LEVELS $data = $the_user_data; $data[] = '-'; /// Membership ID $data[] = '-'; /// Membership $data[] = '-'; /// start TIME $data[] = '-'; /// Expire TIME $data[] = $user->roles; $data[] = $user->user_registered; fputcsv($file_resource, $data, ","); unset($data); } unset($the_user_data); } /// end of foreach users fclose($file_resource); return $file_link; } return ''; } endif; function ihc_get_attachment_details($id, $return_type='name'){ /* * @param attachment id, what to return: name or extension * @return string : */ $attachment_data = wp_get_attachment_url($id); if (isset($attachment_data)){ $attachment_arr = explode('/', $attachment_data); if (isset($attachment_arr)){ end($attachment_arr); $attachment_name = $attachment_arr[key($attachment_arr)]; if ($return_type=='name'){ return $attachment_name; } $attachment_type = explode('.', $attachment_name); if (isset($attachment_type)){ end($attachment_type); if (isset($attachment_type[key($attachment_type)])){ return $attachment_type[key($attachment_type)]; } } } } return 'Unknown'; } function ihc_replace_constants( $string='', $uid=0, $current_lid=-1, $lid=-1, $dynamic_data=array() ){ if ($uid){ /// first we replace the dynamic data passed as arg if (!empty($dynamic_data)){ foreach ($dynamic_data as $k=>$v){ if ( strpos( $string, '{' . $k . '}' ) !== false ){ $string = str_replace('{' . $k . '}', $v, $string); } else { if ( !is_array( $k ) && !is_array( $v ) ){ $string = str_replace( $k, $v, $string ); } } } } /// extract constants preg_match_all("/{([^}]*)}/", $string, $results); if (isset($results[1])){ foreach ($results[1] as $constant){ $replace = ''; switch ($constant){ case 'user_id': case 'uid': $replace = $uid; break; case 'level_id': case 'lid': $replace = $lid; break; case 'username': $replace = Ihc_Db::get_user_col_value($uid, 'user_login'); /// uid, col_name break; case 'CUSTOM_FIELD_user_url': $replace = Ihc_Db::get_user_col_value($uid, 'user_url'); /// uid, col_name break; case 'user_login': case 'user_email': case 'user_url': case 'user_nicename': case 'user_registered': case 'display_name': $replace = Ihc_Db::get_user_col_value($uid, $constant); /// uid, col_name if ($constant=='user_registered'){ $replace = ihc_convert_date_to_us_format($replace); } break; case 'first_name': $replace = get_user_meta($uid, 'first_name', true); break; case 'last_name': $replace = get_user_meta($uid, 'last_name', true); break; case 'current_level': if ( $current_lid !='' && $current_lid>-1){ $current_level_data = ihc_get_level_by_id($current_lid); $replace = $current_level_data['label']; } break; case 'level_expire_time': if ($lid>-1){ $time = \Indeed\Ihc\UserSubscriptions::getStartAndExpireForSubscription($uid, $lid); $replace = ihc_convert_date_to_us_format($time['expire_time']); } else if ($current_lid>-1){ $time = \Indeed\Ihc\UserSubscriptions::getStartAndExpireForSubscription($uid, $current_lid); $replace = ihc_convert_date_to_us_format($time['expire_time']); } break; case 'current_level_expire_date': if ($lid>-1){ $time = \Indeed\Ihc\UserSubscriptions::getStartAndExpireForSubscription($uid, $current_lid); $replace = ihc_convert_date_to_us_format($time['expire_time']); } break; case 'level_list': $level_list = \Indeed\Ihc\UserSubscriptions::getAllForUser( $uid ); if (!empty($level_list)){ foreach ($level_list as $id=>$t_arr){ $level_list_arr[] = $t_arr['label']; } if ($level_list_arr){ $replace = implode(',', $level_list_arr); } } break; case 'account_page': $account_page = get_option("ihc_general_user_page"); if ($account_page){ $replace = get_permalink($account_page); } break; case 'login_page': $login_page = get_option("ihc_general_login_default_page"); if ($login_page){ $replace = get_permalink($login_page); } break; case 'blogname': $replace = get_option("blogname"); break; case 'blogurl': case 'site_url': $replace = get_option("siteurl"); break; case 'level_name': if ($lid>-1){ $level_data = ihc_get_level_by_id($lid); $replace = $level_data['label']; } break; case 'amount': if (isset($dynamic_data['order_id'])){ $replace = Ihc_Db::getOrderAmount($dynamic_data['order_id']); } else if ($lid>-1){ $level_data = ihc_get_level_by_id($lid); $replace = $level_data['price']; $state = get_user_meta($uid, 'ihc_state', TRUE); $country = get_user_meta($uid, 'ihc_country', TRUE); $taxes_data = ihc_get_taxes_for_amount_by_country($country, $state, $replace); if (isset($taxes_data['total'])){ $replace = $replace + $taxes_data['total']; } } $replace = ihc_format_price_and_currency( '', $replace ); break; case 'currency': $replace = get_option('ihc_currency'); $currency_custom_code = get_option('ihc_custom_currency_code'); if (!empty($currency_custom_code)){ $replace = $currency_custom_code; } break; case 'current_date': $replace = ihc_convert_date_to_us_format(date('Y-m-d H:i:s')); break; case 'ihc_avatar': $avatar = ihc_get_avatar_for_uid($uid); if (!empty($avatar)){ $replace = '<img src="' . $avatar . '"/>'; } break; case 'flag': $replace = ihc_user_get_flag($uid); break; case 'CUSTOM_FIELD_ihc_country': $search_key = str_replace("CUSTOM_FIELD_", "", $constant); $country = get_user_meta($uid, $search_key, TRUE); $countries = ihc_get_countries(); $replace = isset( $countries[$country] ) ? $countries[$country] : ''; break; default: if (strpos($constant, 'CUSTOM_FIELD_')!==FALSE){ $search_key = str_replace("CUSTOM_FIELD_", "", $constant); $replace = get_user_meta($uid, $search_key, TRUE); if (is_array($replace)){ $replace = implode(',', $replace); } } else { ///search data into wp_usermeta $replace = get_user_meta($uid, $constant, TRUE); if (is_array($replace)){ $replace = implode(',', $replace); } } break; } /// end of switch $string = str_replace("{" . $constant . "}", $replace, $string); } ///end of foreach } } return $string; } function ihc_user_get_flag($uid=0, $class='ihc-public-flag'){ /* * @param int (user id), string (class of image) * @return string (image) */ $flag = get_user_meta($uid, 'ihc_country', true); if (empty($flag)){ return ''; } else { $countries = ihc_get_countries(); $key = $flag; $flag = strtolower($flag); $country = $countries[strtoupper($key)]; $title = (empty($country)) ? '' : $country; return '<img src="' . IHC_URL . 'assets/flags/' . $flag . '.svg" class="' . $class . '" title="' . $title . '" />'; } } function ihc_random_str($length, $keyspace = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'){ /* * @param length - int, keyspace - string * @return string */ $str = ''; $max = mb_strlen($keyspace, '8bit') - 1; for ($i = 0; $i < $length; ++$i) { $str .= $keyspace[rand(0, $max)]; } return $str; } function ihc_generate_alias_name($length=6, $check=array()){ /* * @param length, array * @return string */ $keyspace = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $str = ''; $max = mb_strlen($keyspace, '8bit') - 1; for ($i = 0; $i < $length; ++$i) { $str .= $keyspace[rand(0, $max)]; } while (in_array($str, $check)){ ihc_generate_alias_name($length, $check); } return $str; } /** * @param string * @return string */ function ihc_stripe_renew_script($form_id='') { global $current_user; $publishable_key = get_option('ihc_stripe_publishable_key'); $uid = (!empty($current_user) && !empty($current_user->ID)) ? $current_user->ID : 0; $email = !empty($current_user->user_email) ? $current_user->user_email : ''; $top_logo = get_option('ihc_stripe_popup_image'); $button_label = get_option('ihc_stripe_bttn_value'); $locale_code = get_option('ihc_stripe_locale_code'); if ($locale_code){ $locale = $locale_code; } else { $locale = "auto"; } if ($top_logo){ $image = $top_logo; } else { $image = ''; } if ($button_label){ $bttn = $button_label; } else { $bttn = ''; } $currency = get_option( 'ihc_currency'); $multiply = ihcStripeMultiplyForCurrency( $currency ); //$ajaxURL = IHC_URL . 'public/ajax-custom.php?ihcpublicn=' . wp_create_nonce( 'ihcpublicn' ); $ajaxURL = get_site_url() . '/wp-admin/admin-ajax.php?action=ihc_ajax_public_custom_ajax_gate&ihcpublicn=' . wp_create_nonce( 'ihcpublicn' ); $str =''; wp_enqueue_script( 'ihc-stripe-checkout', 'https://checkout.stripe.com/checkout.js', ['jquery'], 10.1 ); wp_enqueue_script( 'ihc-stripe-custom', IHC_URL . 'assets/js/stripe.js', ['jquery'], 10.1 ); $str .= '<span class="ihc-js-stripe-v1-data" data-key="' . $publishable_key . '" data-locale="' . $locale . '" data-image="' . $image . '" data-bttn="' . $bttn . '" data-email="' . $email . '" data-multiply="' . $multiply . '" data-target_url="' . $ajaxURL . '" data-uid="' . $uid . '" data-blogname="' . get_option( 'blogname' ) . '" data-currency="' . $currency . '" data-form="' . $form_id . '" data-is_renew="1" ></span>'; return $str; } function ihc_check_social_status($type){ /* * @param string name of social media * @return array */ $return = array(); $return['active'] = ''; $return['status'] = 0; $return['settings'] = 'Uncompleted'; switch ($type){ case 'fb': $arr = ihc_return_meta_arr('fb'); if (!empty($arr['ihc_fb_app_id']) && !empty($arr['ihc_fb_app_secret'])){ $return['settings'] = 'Completed'; } if (!empty($arr['ihc_fb_status'])){ $return['status'] = 1; $return['active'] = 'fb-active'; } break; case 'tw': $arr = ihc_return_meta_arr('tw'); if (!empty($arr['ihc_tw_app_key']) && !empty($arr['ihc_tw_app_secret'])){ $return['settings'] = 'Completed'; } if (!empty($arr['ihc_tw_status'])){ $return['status'] = 1; $return['active'] = 'tw-active'; } break; case 'in': $arr = ihc_return_meta_arr('in'); if (!empty($arr['ihc_in_app_key']) && !empty($arr['ihc_in_app_secret'])){ $return['settings'] = 'Completed'; } if (!empty($arr['ihc_in_status'])){ $return['status'] = 1; $return['active'] = 'in-active'; } break; case 'tbr': $arr = ihc_return_meta_arr('tbr'); if (!empty($arr['ihc_tbr_app_key']) && !empty($arr['ihc_tbr_app_secret'])){ $return['settings'] = 'Completed'; } if (!empty($arr['ihc_tbr_status'])){ $return['status'] = 1; $return['active'] = 'tbr-active'; } break; case 'ig': $arr = ihc_return_meta_arr('ig'); if (!empty($arr['ihc_ig_app_id']) && !empty($arr['ihc_ig_app_secret'])){ $return['settings'] = 'Completed'; } if (!empty($arr['ihc_ig_status'])){ $return['status'] = 1; $return['active'] = 'ig-active'; } break; case 'vk': $arr = ihc_return_meta_arr('vk'); if (!empty($arr['ihc_vk_app_id']) && !empty($arr['ihc_vk_app_secret'])){ $return['settings'] = 'Completed'; } if (!empty($arr['ihc_vk_status'])){ $return['status'] = 1; $return['active'] = 'vk-active'; } break; case 'goo': $arr = ihc_return_meta_arr('goo'); if (!empty($arr['ihc_goo_app_id']) && !empty($arr['ihc_goo_app_secret'])){ $return['settings'] = 'Completed'; } if (!empty($arr['ihc_goo_status'])){ $return['status'] = 1; $return['active'] = 'goo-active'; } break; } return $return; } function ihc_generate_color_hex(){ /* * @param none * @return string */ $colors = array('#0a9fd8', '#38cbcb', '#27bebe', '#0bb586', '#94c523', '#6a3da3', '#f1505b', '#ee3733', '#f36510', '#f8ba01'); return $colors[rand(0, (count($colors)-1) )]; } //=================== COUPONS function ihc_create_coupon($post_data=array()){ /* * @param post_data (array) * @return boolean */ if ( isset( $post_data['ihc_bttn'] ) ){ unset( $post_data['ihc_bttn'] ); } if ( isset( $post_data['ihc_admin_coupons_nonce'] ) ){ unset( $post_data['ihc_admin_coupons_nonce'] ); } if ($post_data){ global $wpdb; if (!empty($post_data['how_many_codes'])){ // ============== MULTIPLE COUPONS ===============// $settings = serialize($post_data); $prefix = $post_data['code_prefix']; $prefix_length = strlen($post_data['code_prefix']); if( $post_data['code_length'] == $prefix_length) { $length = 10; } else { $length = $post_data['code_length'] - $prefix_length; } $limit = $post_data['how_many_codes']; unset($post_data['how_many_codes']); unset($post_data['code_prefix']); unset($post_data['code_length']); if (empty($post_data['discount_value'])){ return; } while ($limit){ $code = ihc_random_str($length); $code = $prefix . $code; $code = str_replace(' ', '', $code); $code = ihc_make_string_simple($code); $query = $wpdb->prepare( "SELECT id,code,settings,submited_coupons_count,status FROM {$wpdb->prefix}ihc_coupons WHERE code=%s ;", $code ); unset( $query ); $data = $wpdb->get_row( $query ); if ($data){ continue; } $query = $wpdb->prepare( "INSERT INTO {$wpdb->prefix}ihc_coupons VALUES( '', %s, %s, 0, 1);", $code, $settings ); $wpdb->query( $query ); unset( $query ); $limit--; } } else { //============== SINGLE COUPON ==================// if (empty($post_data['code']) || empty($post_data['discount_value'])){ return FALSE; } //check if this code already exists $query = $wpdb->prepare( "SELECT id,code,settings,submited_coupons_count,status FROM {$wpdb->prefix}ihc_coupons WHERE code=%s ;", $post_data['code'] ); $data = $wpdb->get_row( $query ); if ($data){ return FALSE; } $code = str_replace(' ', '', $post_data['code']); $code = ihc_make_string_simple($code); unset($post_data['code']); if (isset($post_data['special_status'])){ $status = $post_data['special_status']; unset($post_data['special_status']); } else { $status = 1; } $settings = serialize($post_data); $query = $wpdb->prepare( "INSERT INTO {$wpdb->prefix}ihc_coupons VALUES( '', %s, %s, 0, %s );", $code, $settings, $status ); $wpdb->query( $query ); return TRUE; } } } function ihc_update_coupon($post_data=array()){ /* * @param post_data (array) * @return none */ if ($post_data){ if (empty($post_data['code']) || empty($post_data['discount_value'])){ return FALSE; } global $wpdb; $id = esc_sql($post_data['id']); unset($post_data['id']); $query = $wpdb->prepare( "SELECT id,code,settings,submited_coupons_count,status FROM {$wpdb->prefix}ihc_coupons WHERE id=%d;", $id ); $data = $wpdb->get_row( $query ); if ($data){ $code = str_replace(' ', '', $post_data['code']); $code = ihc_make_string_simple($post_data['code']); unset($post_data['code']); unset($post_data['id']); $settings = serialize($post_data); $query = $wpdb->prepare( "UPDATE {$wpdb->prefix}ihc_coupons SET code=%s, settings=%s WHERE id=%d; ", $code, $settings, $id ); $wpdb->query( $query ); } } } function ihc_delete_coupon($id){ /* * @param id (int) * @return none */ global $wpdb; $q = $wpdb->prepare("SELECT id,code,settings,submited_coupons_count,status FROM {$wpdb->prefix}ihc_coupons WHERE id=%d;", $id); $exists = $wpdb->get_row($q); if ($exists){ $q = $wpdb->prepare("DELETE FROM {$wpdb->prefix}ihc_coupons WHERE id=%d;", $id); $wpdb->query($q); } } function ihc_submit_coupon($code='', $uid=0, $lid=0){ /* * todo: a class for submit coupon * @param string * @return boolean */ global $wpdb; //check if this code already exists $code = str_replace(' ', '', $code); if (defined('IHC_COUPON_SUBMITED')){ return; /// preventing from accidently submit the same coupon twice } else { define('IHC_COUPON_SUBMITED', 1); } $q = $wpdb->prepare("SELECT submited_coupons_count FROM {$wpdb->prefix}ihc_coupons WHERE code=%s ;", $code); $data = $wpdb->get_row($q); if (isset($data->submited_coupons_count)){ $submited_coupons_count = (int)$data->submited_coupons_count; $submited_coupons_count++; $table = $wpdb->prefix ."ihc_coupons"; $q = $wpdb->prepare("UPDATE $table SET submited_coupons_count=%d WHERE code=%s;", $submited_coupons_count, $code ); $wpdb->query($q); do_action('ump_coupon_code_submited', $code, $uid, $lid); // @description Run after coupon code was submited. @param coupon code, user id, level id. return TRUE; } return FALSE; } function ihc_get_coupon_by_code($code=''){ /* * @param string * @return array */ $return_data = array(); if ($code){ global $wpdb; $code = str_replace(' ', '', $code); $q = $wpdb->prepare("SELECT id,code,settings,submited_coupons_count,status FROM {$wpdb->prefix}ihc_coupons WHERE code=%s ;", $code); $data = $wpdb->get_row($q); if ($data){ $return_data = unserialize($data->settings); $return_data['code'] = $data->code; $return_data['submited_coupons_count'] = $data->submited_coupons_count; } } return $return_data; } function ihc_get_all_coupons(){ /* * @param none * @return array */ $return_data = array(); global $wpdb; //No query parameters required, Safe query. prepare() method without parameters can not be called $query = "SELECT id,code,settings,submited_coupons_count,status FROM {$wpdb->prefix}ihc_coupons WHERE status=1;"; $data = $wpdb->get_results( $query ); if ($data){ foreach ($data as $obj){ $return_data[$obj->id]['code'] = $obj->code; $return_data[$obj->id]['settings'] = unserialize($obj->settings); $return_data[$obj->id]['submited_coupons_count'] = $obj->submited_coupons_count; } } return $return_data; } function ihc_get_coupon_by_id($id=0){ /* * @param string * @return array */ $arr = array(); if ($id){ global $wpdb; $q = $wpdb->prepare("SELECT id,code,settings,submited_coupons_count,status FROM " . $wpdb->prefix . "ihc_coupons WHERE id=%d ", $id); $data = $wpdb->get_row($q); if ($data && isset($data->code) && isset($data->settings)){ $arr = unserialize($data->settings); $arr['code'] = $data->code; } } else { $arr = array( "code" => "", "discount_type" => "percentage", "discount_value" => '10', "period_type" => "unlimited", "repeat" => "10", "target_level" => "", "reccuring" => "1", "start_time" => '', "end_time" => '', "box_color" => ihc_generate_color_hex(), "description" => "", ); } return $arr; } function ihc_check_coupon($coupon='', $level_id=-1) { $empty = array(); if (!$coupon || $level_id==-1){ return $empty; } $coupon_data = ihc_get_coupon_by_code($coupon); if ($coupon_data){ if (!empty($coupon_data['repeat']) && ($coupon_data['repeat']<=$coupon_data['submited_coupons_count'])){ //out of repeat number return $empty; } if ($coupon_data['period_type']=='date_range' && !empty($coupon_data['start_time']) && !empty($coupon_data['end_time'])){ //we must check the time $start_time = strtotime($coupon_data['start_time']); $end_time = strtotime($coupon_data['end_time']); $current_time = indeed_get_unixtimestamp_with_timezone(); if ($start_time>$current_time){ //not begin coupon time return $empty; } if ($current_time>$end_time){ //out of date return $empty; } } if ( $coupon_data['target_level'] > -1 ){ if ( strpos( $coupon_data['target_level'], ',') !== false ){ // multiple $coupon_data['target_level'] = explode( ',', $coupon_data['target_level'] ); if ( !in_array( $level_id, $coupon_data['target_level'] ) ){ return $empty; } } else { if ( $coupon_data['target_level'] != $level_id ){ //it's not the target level return $empty; } } } return [ "discount_type" => $coupon_data['discount_type'], "discount_value" => $coupon_data['discount_value'], "reccuring" => $coupon_data['reccuring'], "code" => $coupon, ]; } return $empty; } function ihc_coupon_return_price_after_decrease($price=0, $coupon_data=array(), $update_coupon_count=TRUE, $uid=0, $lid=0){ /* * @param price int, coupon data array, update coupon count bool * @return price int */ if ($price && $coupon_data){ if ($coupon_data['discount_type']=='percentage'){ $price = $price - ($price*$coupon_data['discount_value']/100); } else { $price = $price - $coupon_data['discount_value']; } $price = round($price, 2); if ($price<0){ $price = 0; //// price cannot be negative } if ($update_coupon_count){ //lets update the coupon count in db ihc_submit_coupon($coupon_data['code'], $uid, $lid); } } return $price; } function ihc_get_discount_value($price=0, $coupon_data=array()){ /* * @param int, int * @return none */ if ($price && $coupon_data){ if ($coupon_data['discount_type']=='percentage'){ return ($price*$coupon_data['discount_value']/100); } else { return $coupon_data['discount_value']; } } } function ihc_dont_pay_after_discount($level_id, $coupon, $level_arr, $update_coupon_count=FALSE){ /* * if the price after discount is 0 will return TRUE * @param level_id - int, coupon - string, level_arr - array, update_coupon_count - array * @return boolean */ if (!empty($coupon)){ if (isset($level_arr['access_type']) && $level_arr['access_type']!='regular_period'){ //not reccurence $coupon_data = ihc_check_coupon($coupon, $level_id); $level_arr['price'] = ihc_coupon_return_price_after_decrease($level_arr['price'], $coupon_data, FALSE); if ($level_arr['price']==0){ if ($update_coupon_count){ //update coupon count ihc_submit_coupon($coupon); } return TRUE; } } } return FALSE; } function ihc_get_redirect_link_by_label($name='', $uid=0){ /* * @param string, int (USER ID used for login first redirect, when current_user is not available) * @return string */ if ($name=='#individual_page#'){ if (empty($uid)){ global $current_user; if (!empty($current_user->ID)){ $uid = $current_user->ID; } } if (!empty($uid)){ $individual_page = get_user_meta($uid, 'ihc_individual_page', TRUE); if ($individual_page){ $redirect_to = get_permalink($individual_page); if ($redirect_to){ return $redirect_to; } } } } else { $data = get_option("ihc_custom_redirect_links_array"); if (isset($data[$name])){ return $data[$name]; } } return ''; } function ihc_run_opt_in($email='', $target_opt_in=''){ /* * @param string * @return none */ if (!$target_opt_in){ $target_opt_in = get_option('ihc_register_opt-in-type'); } do_action('ihc_run_opt_in_action', $email, $target_opt_in); // @description Run on opt in. @param email (string), type of service for opt-in (string) if ($target_opt_in && $email){ if (!class_exists('IhcMailServices')){ require_once IHC_PATH . 'classes/IhcMailServices.class.php'; } $uid = \Ihc_Db::get_wpuid_by_email( $email ); if ( isset( $_POST['first_name'] ) ){ $firstName = esc_sql( $_POST['first_name'] ); } else { $firstName = get_user_meta( $uid, 'first_name', true ); } if ( !$firstName ){ $firstName = ''; } if ( isset( $_POST['last_name'] ) ){ $lastName = esc_sql( $_POST['last_name'] ); } else { $lastName = get_user_meta( $uid, 'last_name', true ); } if ( !$lastName ){ $lastName = ''; } $indeed_mail = new IhcMailServices(); $indeed_mail->dir_path = IHC_PATH . 'classes'; switch ($target_opt_in){ case 'aweber': $awListOption = get_option('ihc_aweber_list'); if ($awListOption){ $aw_list = str_replace('awlist', '', $awListOption); $consumer_key = get_option( 'ihc_aweber_consumer_key' ); $consumer_secret = get_option( 'ihc_aweber_consumer_secret' ); $access_key = get_option( 'ihc_aweber_acces_key' ); $access_secret = get_option( 'ihc_aweber_acces_secret' ); if ($consumer_key && $consumer_secret && $access_key && $access_secret){ $return = $indeed_mail->indeed_aWebberSubscribe( $consumer_key, $consumer_secret, $access_key, $access_secret, $aw_list, $email, $firstName . ' ' . $lastName ); } } break; case 'email_list': $email_list = get_option('ihc_email_list'); $email_list .= $email . ','; update_option('ihc_email_list', $email_list); break; case 'mailchimp': $mailchimp_api = get_option( 'ihc_mailchimp_api', false ); $mailchimp_id_list = get_option( 'ihc_mailchimp_id_list', false ); if ( $mailchimp_api !== false && $mailchimp_api !== '' && $mailchimp_id_list !== false && $mailchimp_id_list !== '' ){ $indeed_mail->indeed_mailChimp( $mailchimp_api, $mailchimp_id_list, $email, $firstName, $lastName ); } break; case 'get_response': $api_key = get_option('ihc_getResponse_api_key'); $token = get_option('ihc_getResponse_token'); if ( $api_key === '' || $token === '' ){ return false; } $addcontacturl = 'https://api.getresponse.com/v3/contacts/'; $getcontacturl = 'https://api.getresponse.com/v3/contacts?query[email]='.$email; $fullName = $firstName . ' ' . $lastName; $data = array ( 'name' => $fullName, 'email' => $email, 'dayOfCycle' => 0, 'campaign' => array( 'campaignId' => $token ), 'ipAddress' => $_SERVER['REMOTE_ADDR'], ); $dataString = json_encode($data); $ch = curl_init($addcontacturl); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $dataString ); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'X-Auth-Token: api-key '.$api_key, ) ); $result = curl_exec($ch); break; case 'campaign_monitor': $listId = get_option('ihc_cm_list_id'); $apiID = get_option('ihc_cm_api_key'); if ($listId && $apiID){ $indeed_mail->indeed_campaignMonitor( $listId, $apiID, $email, $firstName . ' ' . $lastName ); } break; case 'icontact': $appId = get_option('ihc_icontact_appid'); $apiPass = get_option('ihc_icontact_pass'); $apiUser = get_option('ihc_icontact_user'); $listId = get_option('ihc_icontact_list_id'); if ($appId && $apiPass && $apiUser && $listId){ $indeed_mail->indeed_iContact( $apiUser, $appId, $apiPass, $listId, $email, $firstName, $lastName ); } break; case 'constant_contact': $apiUser = get_option('ihc_cc_user'); $apiPass = get_option('ihc_cc_pass'); $listId = get_option('ihc_cc_list'); if ($apiUser && $apiPass && $listId){ $indeed_mail->indeed_constantContact($apiUser, $apiPass, $listId, $email, $firstName, $lastName ); } break; case 'wysija': $listID = get_option('ihc_wysija_list_id'); if ($listID){ $indeed_mail->indeed_wysija_subscribe( $listID, $email, $firstName, $lastName ); } break; case 'mymail': $listID = get_option('ihc_mymail_list_id'); if ($listID){ $indeed_mail->indeed_myMailSubscribe( $listID, $email, $firstName, $lastName ); } break; case 'madmimi': $username = get_option('ihc_madmimi_username'); $api_key = get_option('ihc_madmimi_apikey'); $listName = get_option('ihc_madmimi_listname'); if ($username && $api_key && $listName){ $indeed_mail->indeed_madMimi( $username, $api_key, $listName, $email, $firstName, $lastName ); } break; case 'active_campaign': $api_url = get_option('ihc_active_campaign_apiurl'); $api_key = get_option('ihc_active_campaign_apikey'); if ($api_url && $api_key){ $indeed_mail->add_contanct_to_active_campaign( $api_url, $api_key, $email, $firstName, $lastName ); } break; default: do_action( 'ump_public_action_optin_custom_service', $target_opt_in, $email, $firstName, $lastName ); break; } } } function ihc_get_custom_constant_fields(){ /* * @param none * @return array */ $data = get_option('ihc_user_fields'); foreach ($data as $arr){ $fields["{CUSTOM_FIELD_" . $arr['name'] ."}"] = $arr['name']; } $diff = array('ihc_social_media', 'ihc_coupon', 'recaptcha', 'tos', 'pass2', 'pass1', 'user_login', 'user_email', 'confirm_email', 'first_name', 'last_name', 'ihc_avatar'); $fields = array_diff($fields, $diff); return $fields; } function ihc_get_active_payments_services($only_keys=FALSE){ /* * @param none * @return array */ $arr = array(); if (!function_exists('ihc_check_payment_status')){ require_once IHC_PATH . 'admin/includes/functions.php'; } $gateways = ihc_list_all_payments(); $gateways_without_labels = array(); foreach ($gateways as $key=>$value){ $order = get_option('ihc_' . $key . '_select_order'); if ($order===FALSE || $order === '' ){ $order = array_search($key, array_keys($gateways)); } while (!empty($gateways_without_labels[$order])){ $order = $order+1; } $gateways_without_labels[$order] = $key; } ksort($gateways_without_labels); foreach ($gateways_without_labels as $k){ $data = ihc_check_payment_status($k); if ($data['status'] && $data['settings']=='Completed'){ if ($only_keys){ $arr[] = $k; } else { $arr[$k] = $gateways[$k]; } } } return $arr; } function ihc_get_active_payment_services(){ /* * @param none * @return array */ $array = array(); $gateways = ihc_list_all_payments(); foreach ($gateways as $k=>$v){ $data = ihc_check_payment_status($k); if ($data['status'] && $data['settings']=='Completed'){ $array[$k] = $gateways[$k]; } } return $array; } function ihc_is_level_reccuring($lid=-1){ /* * @param int * @return bool */ if ($lid>-1){ $level_data = ihc_get_level_by_id($lid); if (!empty($level_data['access_type']) && $level_data['access_type']=='regular_period'){ return TRUE; } } return FALSE; } function ihc_print_payment_select($default_payment='', $field_data=array(), $payments_available=null, $is_reccurence=0, $required_field=FALSE){ /* * @param string, array, array, int, bool * @return string */ $str = ''; if (empty($field_data['theme'])){ $field_data['theme'] = 'ihc-select-payment-theme-1'; } $css_class = $field_data['theme']; $str .= '<div class="iump-form-line-register ' . $css_class . ' ' . ((isset($field_data['class'])) ? $field_data['class'] : '') . '">'; $str .= '<label class="iump-labels-register">'; if ($required_field){ $str .= '<span class="ihc-required-sign">*</span>'; } if (!empty($field_data['label'])){ $str .= ihc_correct_text($field_data['label']); } else { $str .= esc_html__('Select Payment Method', 'ihc'); } $str .= '</label>'; if ($field_data['theme']=='ihc-select-payment-theme-3') { $str .= '<select class="ihc-js-payment-select-drop-down" onChange="ihcPaymentGatewayUpdate(this.value, ' . $is_reccurence . ');">'; } foreach ($payments_available as $k => $v){ $onclick = "ihcPaymentGatewayUpdate('" . $k . "', " . $is_reccurence . ");"; $label = get_option('ihc_' . $k . '_label'); if (empty($label)){ $label = $v; } if ($field_data['theme']=='ihc-select-payment-theme-1'){ $selected = ($default_payment==$k) ? 'checked' : ''; $str .= '<div class="iump-form-paybox"><input type="radio" name="ihc_payment_gateway_radio" value="' . $k . '" onClick="' . $onclick . '" ' . $selected . ' />' . ihc_correct_text($label) . '</div>'; } else if ($field_data['theme']=='ihc-select-payment-theme-2'){ $paymentLogo = IHC_URL . 'assets/images/' . $k . '.png'; $paymentLogo = apply_filters( 'ihc_filter_payment_logo', $paymentLogo, $k ); // @description Payment gateway logo that is displayed on reigster/subscription page. @param url to logo (string), payment gateway type (string). $onclick = "ihcPaymentSelectIcon('".$k."');" . $onclick; $class = ($default_payment==$k) ? 'ihc-payment-select-img-selected' : ''; $str .= '<div class="iump-form-paybox" onClick="' . $onclick . '" class="ihc-payment-icon-wrap">'; $str .= '<img src="'.$paymentLogo.'" data-type="' . $k . '" class="ihc-payment-icon ' . $class . '" id="ihc_payment_icon_' . $k . '"/>'; $str .= '</div>'; } else if ($field_data['theme']=='ihc-select-payment-theme-3'){ $selected = ($default_payment==$k) ? 'selected' : ''; $str .= '<option value="' . $k . '" ' . $selected . '>' . ihc_correct_text($label) . '</option>'; } } if ($field_data['theme']=='ihc-select-payment-theme-3') { $str .= '</select>'; } if (!empty($field_data['sublabel'])){ $str .= '<label class="iump-form-sublabel">' . ihc_correct_text($field_data['sublabel']) . '</label>'; } $str .= '</div>'; return $str; } function ihc_check_payment_available($type=''){ /* * check if a payment service it's enabled and has the required keys set * @param string - type of payment * @return bool */ $status = false; if ($type){ $payment_metas = ihc_return_meta_arr('payment_' . $type); switch ($type){ case 'paypal': if (!empty($payment_metas['ihc_paypal_email']) && !empty($payment_metas['ihc_paypal_status'])){ $status = true; } break; case 'authorize': if (!empty($payment_metas['ihc_authorize_login_id']) && !empty($payment_metas['ihc_authorize_transaction_key']) && !empty($payment_metas['ihc_authorize_status'])){ $status = true; } break; case 'twocheckout': if (!empty($payment_metas['ihc_twocheckout_status']) && !empty($payment_metas['ihc_twocheckout_api_user']) && !empty($payment_metas['ihc_twocheckout_api_pass']) && !empty($payment_metas['ihc_twocheckout_private_key']) && !empty($payment_metas['ihc_twocheckout_account_number']) && !empty($payment_metas['ihc_twocheckout_secret_word'])){ $status = true; } break; case 'bank_transfer': if (!empty($payment_metas['ihc_bank_transfer_status']) && !empty($payment_metas['ihc_bank_transfer_message'])){ $status = true; } break; case 'stripe': if (!empty($payment_metas['ihc_stripe_secret_key']) && !empty($payment_metas['ihc_stripe_publishable_key']) && !empty($payment_metas['ihc_stripe_status'])){ $status = true; } break; case 'braintree': if ($payment_metas['ihc_braintree_status'] == 1 && !empty($payment_metas['ihc_braintree_merchant_id']) && !empty($payment_metas['ihc_braintree_public_key']) && !empty($payment_metas['ihc_braintree_private_key'])){ $status = true; } break; case 'mollie': if (!empty($payment_metas['ihc_mollie_status']) && !empty($payment_metas['ihc_mollie_api_key'])){ $status = true; } break; case 'pagseguro': if (!empty($payment_metas['ihc_pagseguro_status']) && !empty($payment_metas['ihc_pagseguro_email']) && !empty($payment_metas['ihc_pagseguro_token'])){ $status = true; } break; case 'paypal_express_checkout': if (!empty($payment_metas['ihc_paypal_express_checkout_signature']) && !empty($payment_metas['ihc_paypal_express_checkout_user']) && !empty($payment_metas['ihc_paypal_express_checkout_password']) && !empty($payment_metas['ihc_paypal_express_checkout_status'])){ $status = true; } break; case 'stripe_checkout_v2': if (!empty($payment_metas['ihc_stripe_checkout_v2_secret_key']) && !empty($payment_metas['ihc_stripe_checkout_v2_publishable_key']) && !empty($payment_metas['ihc_stripe_checkout_v2_status'])){ $status = true; } break; case 'stripe_connect': if ( ( (!empty($payment_metas['ihc_stripe_connect_publishable_key']) && !empty($payment_metas['ihc_stripe_connect_client_secret']) && !empty($payment_metas['ihc_stripe_connect_account_id'])) || (!empty($payment_metas['ihc_stripe_connect_test_publishable_key']) && !empty($payment_metas['ihc_stripe_connect_test_client_secret']) && !empty($payment_metas['ihc_stripe_connect_test_account_id'])) ) && !empty($payment_metas['ihc_stripe_connect_status'])){ $status = true; } break; } } $status = apply_filters( 'ihc_payment_gateway_status', $status, $type ); // @description Run on check if payment gateway is available. @param bool ( true if available ) return $status; } function ihc_switch_role_for_user($uid=0){ /* * Switch User Role when Complete a Payment. * @param int * @return none */ $levels = \Indeed\Ihc\UserSubscriptions::getAllForUser( $uid, true ); if ( count( $levels ) > 1 ){ return; // only for the first level } $do_switch = get_option('ihc_automatically_switch_role'); if ($do_switch && $uid){ $data = get_userdata($uid); if ($data && isset($data->roles) && isset($data->roles[0])){ $role = get_option('ihc_automatically_new_role'); if (empty($role)){ $role = 'subscriber'; } $arr['role'] = $role; $arr['ID'] = $uid; $userObject = new \WP_User( $uid ); $userObject->set_role( $role ); } } } function ihc_get_currencies_list($return='all'){ /* * @param string : all, basic, custom * @return array */ $basic = array( 'AUD' => 'Australian Dollar (A $)', 'CAD' => 'Canadian Dollar (C $)', 'EUR' => 'Euro (€)', 'GBP' => 'British Pound (£)', 'JPY' => 'Japanese Yen (¥)', 'USD' => 'U.S. Dollar ($)', 'NZD' => 'New Zealand Dollar ($)', 'CHF' => 'Swiss Franc', 'HKD' => 'Hong Kong Dollar ($)', 'SGD' => 'Singapore Dollar ($)', 'SEK' => 'Swedish Krona', 'DKK' => 'Danish Krone', 'PLN' => 'Polish Zloty', 'NOK' => 'Norwegian Krone', 'HUF' => 'Hungarian Forint', 'CZK' => 'Czech Koruna', 'ILS' => 'Israeli New Shekel', 'MXN' => 'Mexican Peso', 'BRL' => 'Brazilian Real (only for Brazilian members)', 'MYR' => 'Malaysian Ringgit (only for Malaysian members)', 'PHP' => 'Philippine Peso', 'TWD' => 'New Taiwan Dollar', 'THB' => 'Thai Baht', 'TRY' => 'Turkish Lira (only for Turkish members)', 'RUB' => 'Russian Ruble', 'ZAR' => 'South African rand', 'GHS' => 'Ghanaian cedi', 'NGN' => 'Nigerian naira', 'INR' => 'Indian Rupee (₹)', ); $data = get_option('ihc_currencies_list'); if ($return=='all'){ if ($data!==FALSE && is_array($data)){ return $basic+$data; } return $basic; } else if ($return=='basic'){ return $basic; } else { return $data; } } function ihc_get_user_type(){ /* * @param none * @return string */ $type = 'unreg'; if (function_exists('is_user_logged_in') && is_user_logged_in()){ if (current_user_can('manage_options')){ return 'admin'; } //pending user global $current_user; if ($current_user){ if (isset($current_user->roles[0]) && $current_user->roles[0]=='pending_user'){ $type = 'pending'; }else{ $type = 'reg'; $current_user = wp_get_current_user(); $levels = \Indeed\Ihc\UserSubscriptions::getAllForUserAsList( $current_user->ID, true ); $levels = apply_filters( 'ihc_public_get_user_levels', $levels, $current_user->ID ); if ($levels!==FALSE && $levels!=''){ $type = $levels; } } } } return $type; } function ihc_required_conditional_field_test($name='', $match_string=''){ /* * @param string, string * @return string with error if it's case, empty string if it's ok */ $fields_meta = ihc_get_user_reg_fields(); $key = ihc_array_value_exists($fields_meta, $name, 'name'); if ($key!==FALSE && isset($fields_meta[$key]) && isset($fields_meta[$key]['type']) && $fields_meta[$key]['type']=='conditional_text' && !empty($fields_meta[$key]['conditional_text'])){ if ($fields_meta[$key]['conditional_text']!=$match_string){ return ihc_correct_text($fields_meta[$key]['error_message']); } } return ''; } function ihc_get_public_register_fields($exclude_field=''){ /* * used only in register.php admin section, * @param string * @return array */ $return = array(); $fields_meta = ihc_get_user_reg_fields(); foreach ($fields_meta as $arr){ if ($arr['display_public_reg']>0 && !in_array($arr['type'], array('payment_select', 'social_media', 'upload_image', 'plain_text', 'file', 'capcha')) && $arr['name']!='tos'){ if ($exclude_field && $exclude_field==$arr['name']){ continue; } $return[$arr['name']] = $arr['name']; } } return $return; } function ihc_check_field_is_in_logic_conditional($field_name=''){ /* * check if this field it's mentionated in other fields conditions * @param name of field * @return boolean */ $fields_meta = ihc_get_user_reg_fields(); $key = ihc_array_value_exists($fields_meta, $field_name, 'name'); if ($key!==FALSE){ if (!empty($fields_meta[$key]['conditional_logic_corresp_field']) && $fields_meta[$key]['conditional_logic_corresp_field']!=-1){ return TRUE; } } return FALSE; } function ihc_check_envato_customer($code=''){ /* * @param stirng * @return boolean */ if (!empty($code)){ if (!class_exists('Envato_marketplace')){ require_once IHC_PATH . 'classes/Envato_marketplace.class.php'; } $api_key = 'z4dqvsth70g7qsr4f385fxjdt6wz9dfg'; $user_name = 'azzaroco'; $item_id = '12159253'; $envato_object = new Envato_marketplaces($api_key); $buyer_verify = $envato_object->verify_purchase($user_name, $code); if ( isset($buyer_verify) && isset($buyer_verify->buyer) && $buyer_verify->item->id==$item_id ){ return TRUE; } } return FALSE; } function ihc_envato_check_license(){ update_option('ihc_license_set', 1); update_option('ihc_envato_code', $code); return TRUE; /* * @param none * @return bool */ $check = get_option('ihc_license_set'); if ($check!==FALSE){ if ($check==1) return TRUE; return FALSE; } return TRUE; } function ihc_inside_dashboard_error_license($global=FALSE){ /* * @param none * @return string */ $url = get_admin_url() . 'admin.php?page=ihc_manage&tab=help'; $oldLogs = new \Indeed\Ihc\OldLogs(); if ( $oldLogs->FGCS() === '1' || $oldLogs->FGCS() === true ){ $hide = get_option( 'ihc_hide_admin_license_notice' ); $currentPage = isset($_GET['page']) ? $_GET['page'] : ''; if ( $currentPage != 'ihc_manage' && $hide ){ return ''; } if ($global){ $class = 'error ihc-license-warning'; } else{ $class = 'ihc-error-global-dashboard-message'; } return "<div class='$class'> <div class='ihc-close-notice ihc-js-close-admin-dashboard-notice'>x</div> <p>This is a Trial Version of <strong>Ultimate Membership Pro</strong> plugin. Please add your purchase code into Licence section to enable the Full Ultimate Membership Pro Version. Check your <a href='" . $url . "'>licence section</a>.</p></div>"; } $umpIsNotRegistered = get_option( md5('ihclsm') ); if ( $umpIsNotRegistered === '1' ){ $hide = get_option( 'ihc_hide_admin_license_registration_notice' ); if ( $hide ){ return ''; } if ( $global ){ $class = 'error ihc-license-warning'; } else { $class = 'ihc-error-global-dashboard-message'; } return "<div class='$class'> <div class='ihc-close-notice ihc-js-close-admin-dashboard-registration-notice'>x</div><p>Your <strong>Ultimate Membership Pro</strong> plugin license is not activated and registered. Please add your purchase code into Licence section. Check your <a href='" . $url . "'>licence section</a>.</p></div>"; } return ''; } function ihc_public_notify_trial_version(){ /* * @param none * @return string */ $str = ''; $str .= '<div class="ihc-public-trial-version">'; $str .= esc_html__("This is a Trial Version of ", 'ihc').'<a href="https://ultimatemembershippro.com" target="_blank">Ultimate Membership Pro</a>'.esc_html__(" plugin. Please add your purchase code into Licence section to enable the Full ", 'ihc').'<a href="https://ultimatemembershippro.com" target="_blank">Ultimate Membership Pro</a>'.esc_html__(" Version.", 'ihc'); $str .= '</div>'; return $str; } function ihc_make_string_simple($str=''){ /* * @param string * @return string */ if (!empty($str)){ $str = trim($str); $str = str_replace(' ', '_', $str); $str = preg_replace("/[^A-Za-z0-9_]/", '', $str);//remove all non-alphanumeric chars } return $str; } function ihc_return_transaction_amount_for_user_level($payment_history='', $payment_data=''){ /* * @param string, string * @return float */ $count = 0; if (!empty($payment_history)){ $history_data = (isset($payment_history)) ? unserialize($payment_history) : ''; if ($history_data && is_array($history_data)){ // calculating with recurring payments from entire history foreach ($history_data as $arr){ $amount = 0; if (isset($arr['amount'])){ if (isset($arr['ihc_payment_type']) && !empty($arr['ihc_payment_type']) && $arr['ihc_payment_type']=='stripe' && ((empty($arr['type']) || $arr['type']!='charge.succeeded')) ){ $amount = 0;//stripe first row entry } else if ( !empty($arr['ihc_payment_type']) && $arr['ihc_payment_type']=='mollie' && isset( $arr['message'] ) && $arr['message'] == 'pending' ) { continue; } else { $amount = (float)$arr['amount']; } } else if (isset($arr['mc_gross'])){ $amount = (float)$arr['mc_gross']; } else if (isset($arr['x_amount'])){ $amount = (float)$arr['x_amount']; } $count += $amount; } } else { $history_not_available = TRUE; } } else { $history_not_available = FALSE; } if (!empty($history_not_available)){ $amount = 0; if (isset($obj->payment_data)){ $arr = json_decode($payment_data, TRUE); if (isset($arr['amount'])){ $amount = (float)$arr['amount']; } else if (isset($arr['mc_gross'])){ $amount = (float)$arr['mc_gross']; } else if (isset($arr['x_amount'])){ $amount = (float)$arr['x_amount']; } } $count = $count + $amount; } return $count; } function ihc_get_user_id_by_user_login($u_login=''){ /* * @param string * @return int */ if (!empty($u_login)){ global $wpdb; $q = $wpdb->prepare("SELECT ID FROM " . $wpdb->base_prefix . "users WHERE user_login=%s ;", $u_login); $data = $wpdb->get_row($q); if (!empty($data->ID)){ return $data->ID; } } return 0; } function ihc_get_avatar_for_uid($uid){ /* * @param int * @return string */ $avatar_url = IHC_URL . 'assets/images/no-avatar.png'; if (!empty($uid)){ $avatar = get_user_meta( $uid, 'ihc_avatar', true ); if (!empty($avatar)){ if (strpos($avatar, "http")===0){ $avatar_url = $avatar; } else { $avatar_url = \Ihc_Db::getMediaBaseImage( $avatar ); if ( $avatar_url && strpos($avatar_url, "http")===0 ){ return $avatar_url; } $avatar_data = wp_get_attachment_image_src($avatar, 'full'); if (!empty($avatar_data[0])){ $avatar_url = $avatar_data[0]; } } } else { $temp_metas = ihc_return_meta_arr('public_workflow'); if ($temp_metas['ihc_use_gravatar']){ /// GRAVATAR if (function_exists('get_avatar_url')){ $avatar = get_avatar_url($uid); } else if (function_exists('get_avatar')){ /// < wp 4.2 $avatar = get_avatar($uid); preg_match("/src='(.*?)'/i", $avatar, $matches); $avatar = $matches[1]; } } else if ($temp_metas['ihc_use_buddypress_avatar'] && function_exists('bp_core_fetch_avatar')){ /// BUDDYPRESS $avatar = bp_core_fetch_avatar(array('item_id' => $uid, 'html' => FALSE, 'type' => 'full')); } if (!empty($avatar)){ $avatar_url = $avatar; } } } return $avatar_url; } function ihc_get_admin_ids_list(){ /* * @param none * @return array */ $ids = array(); $data = get_users(array('role' => 'administrator')); if ($data && is_array($data)){ foreach ($data as $user) { $ids[] = $user->ID; } } return $ids; } function ihc_return_user_sm_profile_visit($uid=0){ /* * @param int * @return string */ $str = ''; if ($uid){ $sm_base = array( 'ihc_fb' => 'https://www.facebook.com/',/// profile.php?id= 'ihc_tw' => 'https://twitter.com/intent/user?user_id=', 'ihc_in' => 'https://www.linkedin.com/profile/view?id=', 'ihc_tbr' => 'https://www.tumblr.com/blog/', 'ihc_ig' => 'http://instagram.com/_u/', 'ihc_vk' => 'http://vk.com/id', 'ihc_goo' => 'https://plus.google.com/', ); foreach ($sm_base as $k=>$v){ $data = get_user_meta($uid, $k, TRUE); if (!empty($data)){ $class = str_replace('_', '-', $k); $str .= "<div class='ihc-account-page-sm-icon ihc-display-inline" . $class . "'>"; $str .= "<a href='" . $v . $data . "'>"; $str .= "<i class='fa-ihc-sm fa-" . $class . "'></i>"; $str .= '</a>'; $str .= "</div>"; } } } if ($str){ $str = "<div class='ihc-ap-sm-top-icons-wrap'>" . $str . "</div>"; } return $str; } function ihc_save_rewrite_rule_for_register_view_page($page_id=0){ /* * @param int * @return none */ if ($page_id){ $post_name = get_post_field('post_name', $page_id); if (!empty($post_name)){ add_rewrite_rule("$post_name/([^/]+)/?", 'index.php?pagename=' . $post_name . '&ihc_name=$matches[1]', 'top'); add_rewrite_rule("$post_name/([^/]+)/?",'index.php?page_id=' . $page_id . '&ihc_name=$matches[1]', 'top'); flush_rewrite_rules(); } } } function ihc_is_uap_active(){ /* * @param none * @return boolean */ if (!function_exists('is_plugin_active')){ include_once ABSPATH . 'wp-admin/includes/plugin.php'; } if (file_exists(WP_CONTENT_DIR . '/plugins/indeed-affiliate-pro/indeed-affiliate-pro.php') && is_plugin_active('indeed-affiliate-pro/indeed-affiliate-pro.php')){ if (get_option('uap_license_set')==1){ return TRUE; } } return FALSE; } function ihc_get_payment_id_by_order_id($order_id=0){ /* * @param int * @return int */ if ($order_id){ global $wpdb; $p = $wpdb->prefix . 'indeed_members_payments'; $o = $wpdb->prefix . 'ihc_orders'; $q = $wpdb->prepare("SELECT p.orders as orders, p.id as id FROM $p p INNER JOIN $o o ON p.u_id=o.uid WHERE o.id=%d", $order_id); $data = $wpdb->get_results($q); if ($data){ foreach ($data as $object){ if (isset($object->orders)){ $temp_data = unserialize($object->orders); if ($temp_data && in_array($order_id, $temp_data)){ return $object->id; } } } } } return 0; } function ihc_meta_value_exists($meta_key='', $meta_value=''){ /* * @param string * @return boolean */ if ($meta_key && $meta_value){ global $wpdb; $table = $wpdb->base_prefix . 'usermeta'; $q = $wpdb->prepare("SELECT umeta_id,user_id,meta_key,meta_value FROM $table WHERE meta_value=%s AND meta_key=%s ;", $meta_value, $meta_key); $data = $wpdb->get_results($q); if (!empty($data)){ return TRUE; } } return FALSE; } function ihc_save_metas_group($group='', $post_data=array()){ /* * @param string, array * @return none */ $data = ihc_return_meta_arr($group, true); foreach ($data as $k=>$v){ if (isset($post_data[$k])){ $data_db = get_option($k); if ($data_db!==FALSE){ update_option($k, $post_data[$k]); } else { add_option($k, $post_data[$k]); } } } } function ihc_get_taxes_for_amount_by_country($country='', $state='', $amount=0){ /* * @param string, float || int * @return array */ $array = array(); if (!get_option('ihc_enable_taxes')){ return $array; } $currency = get_option('ihc_currency'); if (!empty($country)){ $data = Ihc_Db::get_taxes_by_country($country, $state); if ($data){ $array['total'] = 0; $array['currency'] = get_option("ihc_currency"); foreach ($data as $tax){ $temp['label'] = $tax['label']; $temp['value'] = $tax['amount_value'] * $amount / 100; $temp['value'] = round($temp['value'], 2); $temp['print_value'] = ihc_format_price_and_currency($currency, $temp['value']); $array['items'][] = $temp; $array['total'] += $temp['value']; } $array['print_total'] = ihc_format_price_and_currency($currency, $array['total']); return $array; } } //use the defaults $taxes_settings = ihc_return_meta_arr('ihc_taxes_settings'); if (!empty($taxes_settings['ihc_default_tax_label']) && !empty($taxes_settings['ihc_default_tax_value'])){ $array['currency'] = get_option("ihc_currency"); $item['label'] = $taxes_settings['ihc_default_tax_label']; $item['value'] = $taxes_settings['ihc_default_tax_value'] * $amount / 100; $item['value'] = round($item['value'], 2); $item['print_value'] = ihc_format_price_and_currency($currency, $item['value']); $array['items'][] = $item; $array['total'] = $item['value']; $array['print_total'] = ihc_format_price_and_currency($currency, $array['total']); } return $array; } function ihc_convert_date_to_us_format($date=''){ /* * @param string * @return string */ if ($date && $date!='-' && is_string($date)){ $date = (isset($date)) ? strtotime($date) : ''; $format = get_option('date_format'); $return_date = date_i18n($format, $date); return $return_date; } return $date; } function ihc_convert_date_time_to_us_format($date=''){ /* * @param string * @return string */ if ($date && $date!='-' && is_string($date)){ $date = (isset($date)) ? strtotime($date) : ''; $date_format = get_option('date_format'); $time_format = get_option('time_format'); $return_date = date_i18n($date_format . ' '. $time_format, $date); return $return_date; } return $date; } function ihc_get_user_orders_count($user_id=''){ global $wpdb; $count = 0; $table = $wpdb->prefix . 'ihc_orders'; $q = $wpdb->prepare("SELECT COUNT(id) AS count FROM $table WHERE uid=%d ", $user_id); $data = $wpdb->get_results($q); if (!empty($data)){ $count = $data[0]->count; } return $count; } function insert_order_from_renew_level($uid=0, $lid=0, $ihc_coupon='', $ihc_country=FALSE, $payment_gateway='', $status=''){ /* * @param int, int, string, string, string, string * @return none */ if (!empty($uid) && $lid!==FALSE){ $extra_order_info = array(); //$levels = \Indeed\Ihc\Db\Memberships::getAll(); $levelData = \Indeed\Ihc\Db\Memberships::getOne( $lid ); $amount = isset( $levelData['price'] ) ? $levelData['price'] : 0; if ($ihc_coupon){ $coupon_data = ihc_check_coupon($ihc_coupon, $lid); $extra_order_info['discount_value'] = ihc_get_discount_value($amount, $coupon_data); $extra_order_info['coupon_used'] = $ihc_coupon; $amount = ihc_coupon_return_price_after_decrease($amount, $coupon_data, TRUE, $uid, $lid); } /// TAXES $state = get_user_meta($uid, 'ihc_state', TRUE); $country = ($ihc_country==FALSE) ? '' : $ihc_country; $taxes_data = ihc_get_taxes_for_amount_by_country($country, $state, $amount); if ($taxes_data && !empty($taxes_data['total'])){ $amount += $taxes_data['total']; $extra_order_info['tax_value'] = $taxes_data['total']; } if ($payment_gateway=='stripe' && $amount<0.50){ $amount = 0.50;/// minimum for stripe. } $order_id = ihc_insert_update_order($uid, $lid, $amount, $status, $payment_gateway, $extra_order_info); return $order_id; } } function ihc_is_magic_feat_active($type=''){ /* * @param string * @return boolean */ $active = false; if ($type){ switch ($type){ case 'taxes': $active = get_option('ihc_enable_taxes'); break; case 'bp_account_page': $active = get_option('ihc_bp_account_page_enable'); break; case 'woo_account_page': $active = get_option('ihc_woo_account_page_enable'); break; case 'membership_card': $active = get_option('ihc_membership_card_enable'); break; case 'cheat_off': $active = get_option('ihc_cheat_off_enable'); break; case 'invitation_code': $active = get_option('ihc_invitation_code_enable'); break; case 'download_monitor_integration': $active = get_option('ihc_download_monitor_enabled'); break; case 'register_lite': $active = get_option('ihc_register_lite_enabled'); break; case 'individual_page': $active = get_option('ihc_individual_page_enabled'); break; case 'level_restrict_payment': $active = get_option('ihc_level_restrict_payment_enabled'); break; case 'level_subscription_plan_settings': $active = get_option('ihc_level_subscription_plan_settings_enabled'); break; case 'gifts': $active = get_option('ihc_gifts_enabled'); break; case 'login_level_redirect': $active = get_option('ihc_login_level_redirect_on'); break; case 'register_redirects_by_level': $active = get_option('ihc_register_redirects_by_level_enable'); break; case 'wp_social_login': $active = get_option('ihc_wp_social_login_on'); break; case 'list_access_posts': $active = get_option('ihc_list_access_posts_on'); break; case 'invoices': $active = get_option('ihc_invoices_on'); break; case 'woo_payment': $active = get_option('ihc_woo_payment_on'); break; case 'badges': $active = get_option('ihc_badges_on'); break; case 'login_security': $active = get_option('ihc_login_security_on'); break; case 'workflow_restrictions': $active = get_option('ihc_workflow_restrictions_on'); break; case 'subscription_delay': $active = get_option('ihc_subscription_delay_on'); break; case 'level_dynamic_price': $active = get_option('ihc_level_dynamic_price_on'); break; case 'user_reports': $active = get_option('ihc_user_reports_enabled'); break; case 'pushover': $active = get_option('ihc_pushover_enabled'); break; case 'account_page_menu': $active = get_option('ihc_account_page_menu_enabled'); break; case 'mycred': $active = get_option('ihc_mycred_enabled'); break; case 'api': $active = get_option('ihc_api_enabled'); break; case 'woo_product_custom_prices': $active = get_option('ihc_woo_product_custom_prices_enabled'); break; case 'drip_content_notifications': $active = get_option('ihc_drip_content_notifications_enabled'); break; case 'user_sites': $active = get_option('ihc_user_sites_enabled'); break; case 'zapier': $active = get_option('ihc_zapier_enabled'); break; case 'infusionSoft': $active = get_option( 'ihc_infusionSoft_enabled' ); break; case 'kissmetrics': $active = get_option( 'ihc_kissmetrics_enabled' ); break; case 'direct_login': $active = get_option( 'ihc_direct_login_enabled' ); break; case 'reason_for_cancel': $active = get_option( 'ihc_reason_for_cancel_enabled' ); break; case 'weekly_summary_email': $active = get_option('ihc_reason_for_weekly_email_enabled'); break; case 'prorate_subscription': $active = get_option('ihc_prorate_subscription_enabled'); break; } } $active = apply_filters( 'ihc_is_magic_feat_active_filter', $active, $type ); // @description Filter if a magic feature is active. @param is active (boolean), type of magic feature (string) return $active; } function get_terms_for_post_id($post_id=0){ /* * @param int * @return array */ $array = array(); if ($post_id){ global $wpdb; $table = $wpdb->prefix . 'term_relationships'; $q = $wpdb->prepare("SELECT term_taxonomy_id FROM $table WHERE object_id=%d ", $post_id); $data = $wpdb->get_results($q); if (!empty($data)){ foreach ($data as $object){ $array[] = $object->term_taxonomy_id; } } } return $array; } function ihc_get_all_terms_with_names(){ /* * @param none * @retunr array */ $array = array(); global $wpdb; $table = $wpdb->prefix . 'terms'; $table_2 = $wpdb->prefix . 'term_relationships'; //No query parameters required, Safe query. prepare() method without parameters can not be called $query = "SELECT term_id, name FROM $table t1 INNER JOIN $table_2 t2 ON t2.term_taxonomy_id=t1.term_id;"; $data = $wpdb->get_results( $query ); if (!empty($data)){ foreach ($data as $object){ $array[$object->term_id] = $object->name; } $exclude = array('settings-verify-email-change', 'groups-membership-request-accepted', 'groups-membership-request-rejected', 'friends-request', 'core-user-registration', 'core-user-registration-with-blog', ); foreach ($exclude as $e){ if ($k=array_search($e, $array)){ unset($array[$k]); unset($k); } } } return $array; } function ihc_do_write_into_htaccess($extensions='mp3|mp4|avi|pdf|zip|rar|doc|gz|tar|docx|xls|xlsx|PDF'){ /* * @param none * @return none */ $file = ABSPATH . '.htaccess'; if (file_exists($file) && is_writable($file)){ /// READ FROM HTACCESS $data = file_get_contents($file); $resource = fopen($file, 'r'); $data = fread($resource, filesize($file)); fclose($resource); unset($resource); $path_to_check_file = WP_CONTENT_DIR . '/plugins/indeed-membership-pro/public/check-file-permissions.php'; $string_to_write = '#BEGIN Ultimate Membership Pro Rules <IfModule mod_rewrite.c> RewriteCond %{REQUEST_URI} !^/(wp-content/themes|wp-content/plugins|wp-admin|wp-includes) RewriteCond %{REQUEST_URI} \.(' . $extensions . ') RewriteRule . ' . $path_to_check_file . ' [L] </IfModule> #END Ultimate Membership Pro Rules'; if (strpos($data, $string_to_write)===FALSE){ $string_to_write = '#BEGIN Ultimate Membership Pro Rules <IfModule mod_rewrite.c> RewriteCond %{REQUEST_URI} !^/(wp-content/themes|wp-content/plugins|wp-admin|wp-includes) RewriteCond %{REQUEST_URI} \.(' . $extensions . ') RewriteRule . /index.php?ihc_action=check-file-permissions [L] </IfModule> #END Ultimate Membership Pro Rules'; if (strpos($data, $string_to_write)===FALSE){ $data = $data . $string_to_write; $resource = fopen($file, 'w+'); fwrite($resource, $data);/// WRITE THE NEW CONTENT fclose($resource); } } else { // conditions already exists, lets update them $newCondition = '#BEGIN Ultimate Membership Pro Rules <IfModule mod_rewrite.c> RewriteCond %{REQUEST_URI} !^/(wp-content/themes|wp-content/plugins|wp-admin|wp-includes) RewriteCond %{REQUEST_URI} \.(' . $extensions . ') RewriteRule . /index.php?ihc_action=check-file-permissions [L] </IfModule> #END Ultimate Membership Pro Rules'; $data = str_replace( $string_to_write, $newCondition, $data ); $resource = fopen($file, 'w+'); fwrite($resource, $data);/// WRITE THE NEW CONTENT fclose($resource); } } } if ( !function_exists( 'ihc_format_price_and_currency' ) ): /** * @param string * @param string * @return string */ function ihc_format_price_and_currency( $currency='', $price_value='' ) { $output = ''; $settings = ihc_return_meta_arr('payment'); if ( !empty( $settings['ihc_custom_currency_code'] ) ){ $currency = $settings['ihc_custom_currency_code']; } if ( isset( $settings['ihc_num_of_decimals'] ) && $settings['ihc_num_of_decimals'] >= 0 && isset( $settings['ihc_decimals_separator'] ) && isset( $settings['ihc_thousands_separator'] ) ){ $price_value = number_format( $price_value, $settings['ihc_num_of_decimals'], $settings['ihc_decimals_separator'], $settings['ihc_thousands_separator'] ); } if ( $settings['ihc_currency_position'] == 'left' ){ $output = $currency . $price_value; } else { $output = $price_value . $currency; } return $output; } endif; if ( !function_exists( 'ihc_format_price_and_currency_with_price_wrapp' ) ): /** * @param string * @param string * @param string * @return string */ function ihc_format_price_and_currency_with_price_wrapp( $currency='', $price_value='', $priceHtmlAttr='' ) { $output = ''; $settings = ihc_return_meta_arr('payment'); if ( !empty( $settings['ihc_custom_currency_code'] ) ){ $currency = $settings['ihc_custom_currency_code']; } if ( isset( $settings['ihc_num_of_decimals'] ) && $settings['ihc_num_of_decimals'] >= 0 && isset( $settings['ihc_decimals_separator'] ) && isset( $settings['ihc_thousands_separator'] ) ){ $price_value = number_format( $price_value, $settings['ihc_num_of_decimals'], $settings['ihc_decimals_separator'], $settings['ihc_thousands_separator'] ); } if ( $settings['ihc_currency_position'] == 'left' ){ $output = $currency . "<span $priceHtmlAttr>" . $price_value . '</span>'; } else { $output = "<span $priceHtmlAttr>" . $price_value . '</span>' . $currency; } return $output; } endif; function ihc_get_levels_with_payment(){ /* * @param none * @return array */ $data = \Indeed\Ihc\Db\Memberships::getAll(); if ($data){ foreach ($data as $key=>$array){ if ($array['payment_type']=='free'){ unset($data[$key]); } } return $data; } return array(); } function ihc_get_state_field_str($country='', $attr=[]){ /* * @param string * @return string */ $str = ''; $extraClass = isset( $attr['class'] ) ? $attr['class'] : ''; $id = isset( $attr['id'] ) ? $attr['id'] : ''; $value = isset( $attr['value'] ) ? ihc_correct_text( $attr['value'] ) : ''; $placeholder = isset( $attr['placeholder'] ) ? $attr['placeholder'] : ''; $otherArgs = isset( $attr['other_args'] ) ? $attr['other_args'] : ''; $disabled = isset( $attr['disabled'] ) ? $attr['disabled'] : ''; $name = isset( $attr['name'] ) ? $attr['name'] : 'ihc_state'; switch ($country){ case 'US': include IHC_PATH . 'public/static-data.php'; $states = indeedUsCaStates(); $str .= "<select class='iump-form-select $extraClass' id='$id' placeholder='$placeholder' $disabled $otherArgs name='$name' onChange='ihcUpdateCart();'>"; foreach ($states['US'] as $prefix => $label){ $selected = $prefix === $value ? 'selected' : ''; $str .= "<option value='$prefix' $selected >$label</option>"; } $str .= "</select>"; break; case 'CA': include IHC_PATH . 'public/static-data.php'; $states = indeedUsCaStates(); $str .= "<select class='iump-form-select $extraClass' id='$id' placeholder='$placeholder' $disabled $otherArgs name='$name' onChange='ihcUpdateCart();'>"; foreach ($states['CA'] as $prefix => $label){ $selected = $prefix === $value ? 'selected' : ''; $str .= "<option value='$prefix' $selected >$label</option>"; } $str .= "</select>"; break; default: $str .= "<input type='text' onBlur='ihcUpdateCart();' name='$name' id='$id' class='$extraClass' value='$value' placeholder='$placeholder' $disabled $otherArgs />"; break; } return $str; } function ihc_do_show_hide_admin_bar_on_public(){ /* * @param none * @return none */ if (!current_user_can('manage_options')){ if (function_exists('is_user_logged_in') && is_user_logged_in()){ /// ONLY REGISTERED USERS $uid = get_current_user_id(); $user = new WP_User($uid); // show for super admin if ( is_super_admin( $uid ) ){ return show_admin_bar( true ); } if ($user && !empty($user->roles) && !empty($user->roles[0]) && !in_array( 'administrator', $user->roles ) ){ $allowed_roles = get_option('ihc_dashboard_allowed_roles'); $allowed_roles = apply_filters( 'ihc_filter_allowed_roles_in_dashboard', $allowed_roles ); if ($allowed_roles){ $roles = explode(',', $allowed_roles); $show = FALSE; foreach ( $roles as $role ){ if ( !empty( $role ) && !empty( $user->roles ) && in_array( $role, $user->roles ) ){ $show = TRUE; } } } else { $show = FALSE; } show_admin_bar($show); } } } } if (!function_exists('indeed_debug_var')): function indeed_debug_var($variable){ /* * print the array into '<pre>' tags * @param array, string, int ... anything * @return none (echo) */ if (is_array($variable) || is_object($variable)){ echo '<pre>'; print_r($variable); echo '</pre>'; } else { var_dump($variable); } } endif; if (!function_exists('ihc_get_custom_field_label')): function ihc_get_custom_field_label($slug=''){ /* * Return Label of custom register field by slug * @param string * @return string */ $data = get_option('ihc_user_fields'); if ($data){ $key = ihc_array_value_exists($data, $slug, 'name'); if (isset($data[$key]) && isset($data[$key]['label'])){ return $data[$key]['label']; } } return ''; } endif; if (!function_exists('ihc_listing_user_get_filter_fields')): function ihc_listing_user_get_filter_fields(){ /* * @param none * @return array */ $return = array(); $data = get_option('ihc_user_fields'); $allow = array('select', 'multi_select', 'checkbox', 'radio', 'date', 'number', 'ihc_country'); $not_allow_names = array('tos'); if ($data){ foreach ($data as $k=>$array){ if (in_array($array['type'], $allow) && !in_array($array['name'], $not_allow_names)){ $return[$array['name']] = $array['label']; } } } return $return; } endif; if (!function_exists('ihc_register_field_get_type_by_slug')): function ihc_register_field_get_type_by_slug($slug=''){ /* * @param string * @return string */ if ($slug){ $data = get_option('ihc_user_fields'); $key = ihc_array_value_exists($data, $slug, 'name'); if ($key!==FALSE && isset($data[$key])){ return $data[$key]['type']; } } } endif; if (!function_exists('ihc_make_level_expire_for_user')): function ihc_make_level_expire_for_user($uid=0, $lid=0){ /* * @param int, int * 2return none */ if ($uid && $lid!==FALSE){ global $wpdb; $table = $wpdb->prefix . 'ihc_user_levels'; $q = $wpdb->prepare("UPDATE $table SET expire_time='0000-00-00 00:00:00', notification=0 WHERE user_id=%d AND level_id=%d ", $uid, $lid); $wpdb->query($q); } } endif; if (!function_exists('ihc_suspend_account')): function ihc_suspend_account($uid=0){ /* * @param int * @return boolean */ if ($uid){ /// CANCEL & DELETE * THE LEVELS $levels = \Indeed\Ihc\UserSubscriptions::getAllForUser( $uid ); if ($levels){ foreach ($levels as $lid=>$array){ \Indeed\Ihc\UserSubscriptions::deleteOne( $uid, $lid ); $cancel = new \Indeed\Ihc\Payments\CancelSubscription(); $cancel->setUid( $uid ) ->setLid( esc_sql( $lid ) ) ->proceed(); } } /// MAKE ROLE SUSPEND wp_update_user(array('ID'=>$uid, 'role'=>'suspended')); return TRUE; } return FALSE; } endif; if (!function_exists('ihc_get_register_form_fields_order')): function ihc_get_register_form_fields_order(){ /* * @param none * @return array */ $array_return = array(); $data = get_option('ihc_user_fields'); ksort($data); $array_return = array(); foreach ($data as $key=>$array){ $array_return[$array['name']] = $key; } return $array_return; } endif; if (!function_exists('ihc_register_form_get_order_values')): function ihc_register_form_get_order_values($name=''){ /* * @param string * @eturn array */ if ($name){ $data = get_option('ihc_user_fields'); $key = ihc_array_value_exists($data, $name, 'name'); if (isset($data[$key]) && isset($data[$key]['values']) && $name != 'ihc_country'){ return $data[$key]['values']; } } } endif; if (!function_exists('ihc_check_dynamic_price_from_user')): function ihc_check_dynamic_price_from_user($lid=0, $amount=0){ /* * @param int($lid), float($amount) * @return boolean (TRUE if ok) */ if (!empty($lid)){ $temp_settings = ihc_return_meta_arr('level_dynamic_price'); if (!empty($temp_settings['ihc_level_dynamic_price_levels_on'][$lid])){ $min = isset($temp_settings['ihc_level_dynamic_price_levels_min'][$lid]) ? $temp_settings['ihc_level_dynamic_price_levels_min'][$lid] : 0; if ($min<=$amount){ return TRUE; } } } return FALSE; } endif; if (!function_exists('ihc_reorder_menu_items')): function ihc_reorder_menu_items($order=array(), $array=array()){ /* * @param array, array * @return array */ if (!empty($order) && is_array($order)){ $return_array = array(); foreach ($order as $key=>$value){ if (isset($array[$key])){ $return_array[$key] = $array[$key]; unset($array[$key]); } } if (!empty($array)){ $return_array = array_merge($return_array, $array); } return $return_array; } return $array; } endif; if (!function_exists('ihc_do_user_approve')): function ihc_do_user_approve($uid=0){ /* * Approve User and send a nice notification. * @param int * @return bool */ if ($uid){ $data = get_userdata($uid); if ($data && isset($data->roles) && isset($data->roles[0]) && $data->roles[0]=='pending_user'){ $default_role = get_option('default_role'); $user_id = wp_update_user(array( 'ID' => $uid, 'role' => $default_role)); if ($user_id==$uid){ do_action( 'ihc_action_approve_user_account', $user_id ); return TRUE; } } } return FALSE; } endif; if (!function_exists('ihc_generate_random_string')): function ihc_generate_random_string($length=10){ /* * @param int * @return string */ $chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $output = ''; for ($i = 0; $i < $length; $i++){ $output .= $chars[rand(0, strlen($chars))]; } return $output; } endif; /** * Convert array of objects into array of array * @param mixed (array or object) * @return array */ if (!function_exists('indeed_convert_to_array')): function indeed_convert_to_array($input=null){ foreach ($input as $object){ $array[] = (array)$object; } return $array; } endif; if (!function_exists('indeed_preg_match_callback')): function indeed_preg_match_callback($matches){ return 's:' . strlen($matches[2]) . ':"' . $matches[2] . '";'; } endif; /** * @param array * @return int */ if (!function_exists('ihc_get_biggest_key_from_array')): function ihc_get_biggest_key_from_array($input=array()){ $max = 0; foreach ($input as $key=>$value){ if ($key>$max){ $max = $key; } } return $max; } endif; function ihc_get_user_pending_trial_order($user_id='', $level_id='', $level_data=null){ global $wpdb; $count = 0; $table = $wpdb->prefix . 'ihc_orders'; $q = $wpdb->prepare("SELECT COUNT(id) AS count FROM $table WHERE uid=%d AND lid=%d AND amount_value=%s AND status='pending' ORDER BY create_date DESC LIMIT 1 ", $user_id, $level_id, 0); $data = $wpdb->get_results($q); if (!empty($data)){ $count = $data[0]->count; } if($count == 0){ $q = $wpdb->prepare("SELECT COUNT(id) AS count FROM $table WHERE uid=%d AND lid=%d AND amount_value=%s AND status='pending' ORDER BY create_date DESC LIMIT 1 ", $user_id, $level_id, $level_data['access_trial_price']); $datas = $wpdb->get_results($q); if (!empty($datas) && $datas[0]->count > 0){ $count = $level_data['access_trial_price']; } } return $count; } # dump and die if (!function_exists('dd')): function dd($variable){ indeed_debug_var($variable); die; } endif; if (!function_exists('ihcGetTransactionDetails')): function ihcGetTransactionDetails($txnId='') { global $wpdb; if (empty($txnId)){ return false; } $data = $wpdb->get_row($wpdb->prepare("SELECT payment_data, orders, u_id FROM {$wpdb->prefix}indeed_members_payments WHERE txn_id=%s; ", $txnId)); if (empty($data)){ return false; } $paymentData = json_decode($data->payment_data, TRUE); if (!empty($paymentData['lid'])){ $lid = $paymentData['lid']; } else if (!empty($paymentData['level'])){ $lid = $paymentData['level']; } $array = array( 'uid' => $data->u_id, 'lid' => $lid, 'amount' => $paymentData['amount'], 'orders' => unserialize($data->orders), 'ihc_payment_type' => $paymentData['ihc_payment_type'], ); return $array; } endif; if (!function_exists('ihcActAsIpn')): function ihcActAsIpn($uid=0, $lid=0, $transactionId='', $paymentData=array()) { $levelData = ihc_get_level_by_id($paymentData['lid']);//getting details about current level \Indeed\Ihc\UserSubscriptions::makeComplete( $paymentData['uid'], $paymentData['lid'] ); $paymentData['message'] = 'success'; $paymentData['status'] = 'Completed'; ihc_insert_update_transaction($paymentData['uid'], $transactionId, $paymentData); } endif; if (!function_exists('ihc_get_current_user')): function ihc_get_current_user(){ global $current_user; return isset($current_user->ID) ? $current_user->ID : 0; } endif; if ( !function_exists( 'ihc_list_all_payments' ) ): function ihc_list_all_payments() { $paymentGateways = array( 'stripe_connect' => 'Stripe', 'paypal' => 'PayPal Standard', 'paypal_express_checkout' => 'PayPal Express Checkout', 'stripe_checkout_v2' => 'Stripe Checkout', 'twocheckout' => '2Checkout', 'mollie' => 'Mollie', 'bank_transfer' => 'Bank Transfer', 'pagseguro' => 'Pagseguro', 'braintree' => 'Braintree', 'authorize' => 'Authorize', 'stripe' => 'Stripe Standard', ); $paymentGateways = apply_filters( 'ihc_payment_gateways_list', $paymentGateways ); // @description List of payment gateways. @param list of payment gateways ( array ) foreach ( $paymentGateways as $paymentSlug => $paymentLabel ){ $label = get_option('ihc_' . $paymentSlug . '_label'); if (!empty($label)){ $paymentGateways[$paymentSlug] = $label; } } return $paymentGateways; } endif; if (!function_exists('indeed_get_plugin_version')): function indeed_get_plugin_version( $base_file_path='' ){ require_once ABSPATH . 'wp-admin/includes/plugin.php'; $plugin_data = get_plugin_data( $base_file_path, false, false); return $plugin_data['Version']; } endif; if ( !function_exists('indeed_is_plugin_active') ): function indeed_is_plugin_active( $pluginBaseFile='' ) { if ( !$pluginBaseFile ){ return false; } if (!function_exists('is_plugin_active')){ include_once ABSPATH . 'wp-admin/includes/plugin.php'; } if (is_plugin_active($pluginBaseFile)){ return true; } return false; } endif; if ( !function_exists('indeed_get_current_language_code') ): function indeed_get_current_language_code() { $languageCode = get_locale(); if ( !$languageCode ){ return false; } $language = explode( '_', $languageCode ); if ( isset($language[0]) ){ return $language[0]; } return $languageCode; } endif; if ( !function_exists('ihc_order_like_register') ): function ihc_order_like_register( $items=array() ) { $registerFields = ihc_get_user_reg_fields(); ksort( $registerFields ); foreach ( $registerFields as $registerField ){ if ( in_array( $registerField['name'], $items ) ){ $returnArray[] = $registerField['name']; unset( $items[ $registerField['name'] ] ); } } if ( !empty( $items ) ){ $returnArray = $returnArray + $items; } return $returnArray; } endif; if ( !function_exists('ihc_level_time_left') ): function ihc_level_time_left($expire_time) { $cur_time = indeed_get_unixtimestamp_with_timezone(); $time_elapsed = $expire_time - $cur_time; $seconds = $time_elapsed ; $minutes = round($time_elapsed / 60 ); $hours = round($time_elapsed / 3600); $days = round($time_elapsed / 86400 ); $weeks = round($time_elapsed / 604800); $months = round($time_elapsed / 2600640 ); $years = round($time_elapsed / 31207680 ); // Seconds if($seconds <= 60){ return "just now"; } //Minutes else if($minutes <=60){ if($minutes==1){ return esc_html__('1 minute left','ihc'); } else{ return "$minutes". esc_html__(' minutes left','ihc'); } } //Hours else if($hours <=24){ if($hours==1){ return esc_html__('1 hour left','ihc'); }else{ return "$hours". esc_html__(' hours left','ihc'); } } //Days else if($days <= 7){ if($days==1){ return esc_html__('1 day left','ihc'); }else{ return "$days". esc_html__(' days left','ihc'); } } //Weeks else if($weeks <= 4.3){ if($weeks==1){ return esc_html__('1 week left','ihc'); }else{ return "$weeks". esc_html__(' weeks left','ihc'); } } //Months else if($months <=12){ if($months==1){ return esc_html__('1 month left','ihc'); }else{ return "$months". esc_html__(' months left','ihc'); } } //Years else{ if($years==1){ return esc_html__('1 year left','ihc'); }else{ return "$years". esc_html__(' years left','ihc'); } } } endif; if ( !function_exists('ihc_prepare_level_show_format') ): function ihc_prepare_level_show_format( $item=array() ) { $current_time = indeed_get_unixtimestamp_with_timezone(); $format = get_option('date_format'); $grace_period = \Indeed\Ihc\Db\Memberships::getMembershipGracePeriod( $item['level_id'] ); if ($grace_period===FALSE || $grace_period == ''){ $grace_period = 0; } $item = array_merge($item, array( 'level_status' => '', 'start_time_format' => date_i18n('M j'), 'expire_time_format' => FALSE, 'time_class' => '', 'bar_width' => 0, 'bar_class' => '', 'tooltip_class' => '', 'tooltip_message' => '', 'extra_message' => '' ) ); $level_data = ihc_get_level_by_id($item['level_id']); $start_time = strtotime($item['start_time']); $expire_time = strtotime($item['expire_time']) + ((int)$grace_period * 24 * 60 *60); $expire_time_nograce = strtotime($item['expire_time']); $grace_period_status = FALSE; if(date('Y') != date('Y', $start_time)){ $item ['start_time_format'] = date_i18n('M j, y', $start_time); }else{ $item ['start_time_format'] = date_i18n('M j', $start_time); } if ($expire_time > 0){ if ($current_time>$expire_time){ $item ['level_status'] = 'expired'; } else{ $item ['level_status'] = 'active'; $item ['tooltip_message'] = ihc_level_time_left($expire_time); $item ['bar_width'] = ($expire_time - $current_time)*100/($expire_time - $start_time); if($item ['bar_width'] > 100){ $item ['bar_width'] = 100; } //check if is in grace period if($current_time > $expire_time_nograce){ $grace_period_status = TRUE; } } if(date('Y') != date('Y', $expire_time)){ $item ['expire_time_format'] = date_i18n('M j, y', $expire_time); }else{ $item ['expire_time_format'] = date_i18n('M j', $expire_time); } }else{ $item ['level_status'] = 'hold'; } switch($item ['level_status']){ case 'active': if(isset($level_data['access_type']) && $level_data['access_type'] == 'unlimited'){ $item ['bar_width'] = '100'; $item ['time_class'] = 'ihc-level-skin-hide'; $item ['tooltip_message'] = esc_html__('LifeTime','ihc'); }elseif(isset($grace_period) && $grace_period > 0){ $item ['extra_message'] = esc_html__('Subscription has ','ihc').$grace_period. esc_html__(' days Grace Period included','ihc');; } if($grace_period_status === TRUE){ $item ['bar_class'] = 'ihc-level-skin-bar-grace-period'; $item ['extra_message'] = esc_html__('Subscription is on Grace Period','ihc'); } if($item ['bar_width'] < 10){ if($grace_period_status === TRUE){ $item ['bar_class'] = 'ihc-level-skin-bar-grace-period-expiresoon'; $item ['extra_message'] = esc_html__('Subscription is on Grace Period and will expire soon','ihc'); }else{ $item ['bar_class'] = 'ihc-level-skin-bar-expiresoon'; $item ['extra_message'] = esc_html__('Subscription will expire soon','ihc'); } } break; case 'expired': $item ['bar_width'] = '100'; $item ['bar_class'] = 'ihc-level-skin-bar-expired'; $item ['tooltip_class'] = 'ihc-level-skin-single-expired'; $item ['tooltip_message'] = esc_html__('Expired','ihc'); $item ['extra_message'] = esc_html__('Subscription period has expired','ihc'); break; case 'hold': $item ['bar_width'] = '100'; $item ['bar_class'] = 'ihc-level-skin-bar-hold'; $item ['tooltip_class'] = 'ihc-level-skin-single-hold'; $item ['tooltip_message'] = esc_html__('On hold','ihc'); $item ['time_class'] = 'ihc-level-skin-hide'; $item ['extra_message'] = esc_html__('No payment confirmation received','ihc'); break; } if($item ['bar_width'] == 100){ $item ['bar_class'] .= ' ihc-level-skin-bar-full'; } return $item; } endif; if ( !function_exists('ihc_return_individual_page_link') ): function ihc_return_individual_page_link($user_id = 0){ $output = ''; if ($user_id != 0){ $individual_page = get_user_meta($user_id, 'ihc_individual_page', TRUE); if ($individual_page){ $permalink = get_permalink($individual_page); if ($permalink){ $output = $permalink; } } } return $output; } endif; if ( !function_exists('ihcIsRegisterPage') ): function ihcIsRegisterPage( $url ) { $registerPage = get_option('ihc_general_register_default_page'); if ( !$registerPage || $registerPage==-1 ){ return false; } $permalink = get_permalink($registerPage); if ( strpos( $url, $permalink) !== false ){ return true; } return false; } endif; if (!function_exists('indeed_get_uid')): function indeed_get_uid(){ global $current_user; if (isset($current_user->ID) && $current_user->ID > 0 ){ return $current_user->ID; } return 0; } endif; if ( !function_exists( 'ihcGetListOfMagicFeatures' ) ): function ihcGetListOfMagicFeatures() { $oldLogs = new \Indeed\Ihc\OldLogs(); $list = array( 'prorate_subscription' => [ 'label' => esc_html__('Prorating Subscriptions', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=prorate_subscription') : '', 'icon' => 'fa-prorate_subscription_settings-ihc', 'extra_class' => 'ihc-module-pro ihc-module-pro-color', 'pro' => TRUE, 'description' => esc_html__('Changes to a Subscription such as upgrading or downgrading with prorated amounts', 'ihc'), 'enabled' => ihc_is_magic_feat_active('prorate_subscription'), ], 'taxes' => array( 'label' => esc_html__('Taxes', 'ihc'), 'description' => esc_html__('Add additional tax charges which can be based on the user location by using the Country field', 'ihc'), 'icon' => 'fa-taxes-ihc', 'extra_class' => '', 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=taxes') : '', 'enabled' => ihc_is_magic_feat_active('taxes'), ), 'opt_in' => array( 'label' => esc_html__('Opt-in Settings', 'ihc'), 'description' => esc_html__('Store your subscribers email address in a well known email marketing platform', 'ihc'), 'icon' => 'fa-opt_in-ihc', 'extra_class' => '', 'link' => admin_url('admin.php?page=ihc_manage&tab=opt_in'), 'enabled' => TRUE, ), 'woo_payment' => array( 'label' => esc_html__('WooCommerce Payment Integration', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=woo_payment') : '', 'icon' => 'fa-woo-ihc', 'extra_class' => 'ihc-module-pro iump-woo-payment-special-color', 'description' => '', 'pro' => TRUE, 'enabled' => ihc_is_magic_feat_active('woo_payment'), ), 'gifts' => array( 'label' => esc_html__('Membership Gifts', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=gifts') : '', 'icon' => 'fa-gifts-ihc', 'extra_class' => '', 'description' => esc_html__('Allow your customers to buy Memberships as gifts', 'ihc'), 'enabled' => ihc_is_magic_feat_active('gifts'), ), 'badges' => array( 'label' => esc_html__('Membership Badges', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=badges') : '', 'icon' => 'fa-badges-ihc', 'extra_class' => '', 'description' => esc_html__('Add a custom badge for each Membership for a better approach', 'ihc'), 'enabled' => ihc_is_magic_feat_active('badges'), ), 'individual_page' => array( 'label' => esc_html__('Individual Page', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=individual_page') : '', 'icon' => 'fa-individual_page-ihc', 'extra_class' => '', 'description' => esc_html__('Each Member will have an individual page accessible only by him and Administrator', 'ihc'), 'enabled' => ihc_is_magic_feat_active('individual_page'), ), 'reason_for_cancel' => array( 'label' => esc_html__('Reason for Cancelling', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=reason_for_cancel') : '', 'icon' => 'fa-reason_for_cancel-ihc', 'extra_class' => '', 'description' => esc_html__('Track the reasons why Members wish to cancel/delete their Subscriptions', 'ihc'), 'enabled' => ihc_is_magic_feat_active('reason_for_cancel'), ), 'woo_product_custom_prices' => array( 'label' => esc_html__('WooCommerce Products Discount', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=woo_product_custom_prices') : '', 'icon' => 'fa-woo-ihc', 'extra_class' => 'iump-woo-discounts-special-color', 'description' => '', 'enabled' => ihc_is_magic_feat_active('woo_product_custom_prices'), ), 'level_dynamic_price' => array( 'label' => esc_html__('Membership Dynamic Price', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=level_dynamic_price') : '', 'icon' => 'fa-level_dynamic_price-ihc', 'extra_class' => '', 'description' => esc_html__('Mimic Donations by letting the client decide how much to pay for Memberships', 'ihc'), 'enabled' => ihc_is_magic_feat_active('level_dynamic_price'), ), 'level_restrict_payment' => array( 'label' => esc_html__('Memberships vs Payments', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=level_restrict_payment') : '', 'icon' => 'fa-level_restrict_payment-ihc', 'extra_class' => '', 'description' => esc_html__('Restrict each Membership to be paid only through a specific Payment Service', 'ihc'), 'enabled' => ihc_is_magic_feat_active('level_restrict_payment'), ), 'level_subscription_plan_settings' => array( 'label' => esc_html__('Memberships Plus', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=level_subscription_plan_settings') : '', 'icon' => 'fa-level_subscription_paln_settings-ihc', 'extra_class' => '', 'description' => esc_html__('Decide which Memberships should be available, based on the user current assigned Membership', 'ihc'), 'enabled' => ihc_is_magic_feat_active('level_subscription_plan_settings'), ), 'user_sites' => array( 'label' => esc_html__('WP MultiSite Subscriptions', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=user_sites') : '', 'icon' => 'fa-user_sites-ihc', 'extra_class' => '', 'description' => esc_html__('Provides Single Sites based on purchased subscriptions. You can sell Single Sites via memberships.', 'ihc'), 'enabled' => ihc_is_magic_feat_active('user_sites'), ), 'drip_content_notifications' => array( 'label' => esc_html__('Drip Content Notifications', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=drip_content_notifications') : '', 'icon' => 'fa-drip_content_notifications-ihc', 'extra_class' => 'iump-dripcontentnotifications-special-color', 'description' => esc_html__('Alert Members when a new post is released by “Drip Content” strategy.', 'ihc'), 'enabled' => ihc_is_magic_feat_active('drip_content_notifications'), ), 'membership_card' => array( 'label' => esc_html__('Membership Card', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=membership_card') : '', 'icon' => 'fa-membership_card-ihc', 'extra_class' => '', 'description' => esc_html__('Members will find their Membership Cards into My Account page and may Print them for further usage', 'ihc'), 'enabled' => ihc_is_magic_feat_active('membership_card'), ), 'cheat_off' => array( 'label' => esc_html__('Cheat Off', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=cheat_off') : '', 'icon' => 'fa-cheat_off-ihc', 'extra_class' => '', 'description' => esc_html__('Prevent your customers from sharing their login credentials by keeping only one user logged in at a time', 'ihc'), 'enabled' => ihc_is_magic_feat_active('cheat_off'), ), 'invitation_code' => array( 'label' => esc_html__('Invitation Codes', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=invitation_code') : '', 'icon' => 'fa-invitation_code-ihc', 'extra_class' => '', 'description' => esc_html__(' Restrict register process to only allow invited persons who have a valid Invitation code', 'ihc'), 'enabled' => ihc_is_magic_feat_active('invitation_code'), ), 'import_users' => array( 'label' => esc_html__('Import Users&Memberships', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=import_users') : '', 'icon' => 'fa-import_users-ihc', 'extra_class' => '', 'description' => esc_html__('Allows to import new Members, update current Members main data or to assign/change Members Memberships', 'ihc'), 'enabled' => TRUE, ), 'login_level_redirect' => array( 'label' => esc_html__('Login Redirects+', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=login_level_redirect') : '', 'icon' => 'fa-sign-in-ihc', 'extra_class' => '', 'description' => esc_html__('Replace the default redirect after login with a custom one based on the member assigned membership', 'ihc'), 'enabled' => ihc_is_magic_feat_active('login_level_redirect'), ), 'wp_social_login' => array( 'label' => esc_html__('Wp Social Login Integration', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=wp_social_login') : '', 'icon' => 'fa-wp_social_login-ihc', 'extra_class' => '', 'description' => esc_html__('Integrated with WP Social Login free Plugin for a lite register/login with social accounts', 'ihc'), 'enabled' => ihc_is_magic_feat_active('wp_social_login'), ), 'list_access_posts' => array( 'label' => esc_html__('List Access Posts', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=list_access_posts') : '', 'icon' => 'fa-list_access_posts-ihc', 'extra_class' => '', 'description' => esc_html__('Display all the posts that a user can see based on his subscriptions', 'ihc'), 'enabled' => ihc_is_magic_feat_active('list_access_posts'), ), 'invoices' => array( 'label' => esc_html__('Order Invoices', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=invoices') : '', 'icon' => 'fa-invoices-ihc', 'extra_class' => '', 'description' => esc_html__('Provides printable invoices for each order in the account page or system dashboard', 'ihc'), 'enabled' => ihc_is_magic_feat_active('invoices'), ), 'custom_currencies' => array( 'label' => esc_html__('Custom Currencies', 'ihc'), 'description' => esc_html__('Add new currencies (with custom symbols) alongside the predefined list', 'ihc'), 'icon' => 'fa-currencies-ihc', 'extra_class' => '', 'link' => admin_url('admin.php?page=ihc_manage&tab=custom_currencies'), 'enabled' => TRUE, ), 'login_security' => array( 'label' => esc_html__('Security Login', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=login_security') : '', 'icon' => 'fa-login_security-ihc', 'extra_class' => '', 'description' => esc_html__('Fight against brute-force attacks by blocking login for the IP after it reaches the maximum allowed retries', 'ihc'), 'enabled' => ihc_is_magic_feat_active('login_security'), ), 'workflow_restrictions' => array( 'label' => esc_html__('WP Workflow Restrictions', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=workflow_restrictions') : '', 'icon' => 'fa-workflow_restrictions-ihc', 'extra_class' => '', 'description' => esc_html__('You can restrict how many posts can be viewed, released and how many comments can be submitted for each Membership', 'ihc'), 'enabled' => ihc_is_magic_feat_active('workflow_restrictions'), ), 'subscription_delay' => array( 'label' => esc_html__('Subscription Delay', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=subscription_delay') : '', 'icon' => 'fa-subscription_delay-ihc', 'extra_class' => '', 'description' => esc_html__('Each Membership will become active after a custom delay time instead of when it was assigned', 'ihc'), 'enabled' => ihc_is_magic_feat_active('subscription_delay'), ), 'user_reports' => array( 'label' => esc_html__('Members Reports', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=user_reports') : '', 'icon' => 'fa-user_reports-ihc', 'extra_class' => '', 'description' => esc_html__('Follow the most important actions and activities done by members such Membership Assignation, Orders Placed, etc', 'ihc'), 'enabled' => ihc_is_magic_feat_active('user_reports'), ), 'pushover' => array( 'label' => esc_html__('Pushover Notifications', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=pushover') : '', 'icon' => 'fa-pushover-ihc', 'extra_class' => '', 'description' => esc_html__('Members may receives notifications on their Mobile Devices via Pushover App', 'ihc'), 'enabled' => ihc_is_magic_feat_active('pushover'), ), 'weekly_summary_email' => array( 'label' => esc_html__('Weekly Summary Email', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=weekly_summary_email') : '', 'icon' => 'fa-weekly_summary_email-ihc', 'extra_class' => '', 'description' => esc_html__('A brief report on a one-week period will be sent to Administrator about number of Orders, Total Revenue and not only', 'ihc'), 'enabled' => ihc_is_magic_feat_active('weekly_summary_email'), ), 'mycred' => array( 'label' => esc_html__('MyCred Points', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=mycred') : '', 'icon' => 'fa-mycred-ihc', 'extra_class' => '', 'description' => esc_html__('Reward with MyCred points when a Membership is purchased', 'ihc'), 'enabled' => ihc_is_magic_feat_active('mycred'), ), 'zapier' => array( 'label' => esc_html__('Zapier Integration', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=zapier') : '', 'icon' => 'fa-zapier-ihc', 'extra_class' => '', 'description' => esc_html__('Connect Ultimate Membership Pro with other apps via Zapier platform with multiple triggers available', 'ihc'), 'enabled' => ihc_is_magic_feat_active('zapier'), ), 'redirect_links' => array( 'label' => esc_html__('Redirect Links', 'ihc'), 'description' => esc_html__('Set custom links from inside or outside of your website that can be used for redirects inside the system', 'ihc'), 'icon' => 'fa-links-ihc', 'extra_class' => '', 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=redirect_links') : '', 'enabled' => TRUE, ), 'register_lite' => array( 'label' => esc_html__('Register Lite', 'ihc'), 'link' => admin_url('admin.php?page=ihc_manage&tab=register_lite'), 'icon' => 'fa-register_lite-ihc', 'extra_class' => '', 'description' => esc_html__('Let your Members register by using only their Email Address. A Generated Password for their account will be sent out via Email', 'ihc'), 'enabled' => ihc_is_magic_feat_active('register_lite'), ), 'account_page_menu' => array( 'label' => esc_html__('Account Custom Tabs', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=account_page_menu') : '', 'icon' => 'fa-account_page_menu-ihc', 'extra_class' => '', 'description' => esc_html__('Create and reorder account page menu items', 'ihc'), 'enabled' => ihc_is_magic_feat_active('account_page_menu'), ), 'api' => array( 'label' => esc_html__('API Gate', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=api') : '', 'icon' => 'fa-api-ihc', 'extra_class' => '', 'description' => esc_html__('Manage your membership system and access data from it through an API with access based on URL calls', 'ihc'), 'enabled' => ihc_is_magic_feat_active('api'), ), 'register_redirects_by_level' => array( 'label' => esc_html__('Register Redirects+', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=register_redirects_by_level') : '', 'icon' => 'fa-register_redirects_by_level-ihc', 'extra_class' => '', 'description' => esc_html__('Choose a custom redirect after register based on the member assigned Membership', 'ihc'), 'enabled' => ihc_is_magic_feat_active('register_redirects_by_level'), ), 'infusionSoft' => array( 'label' => esc_html__('Infusion Soft', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=infusionSoft') : '', 'icon' => 'fa-infusionSoft-ihc', 'extra_class' => '', 'description' => esc_html__('Synchronize your InfusionSoft contacts based on Tags. For each user status or Membership a Tag is associated', 'ihc'), 'enabled' => ihc_is_magic_feat_active('infusionSoft'), ), 'kissmetrics' => array( 'label' => esc_html__('Kissmetrics Integration', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=kissmetrics') : '', 'icon' => 'fa-kissmetrics-ihc', 'extra_class' => '', 'description' => esc_html__('Track multiple Membership events and Member actions with Kissmetrics service', 'ihc'), 'enabled' => ihc_is_magic_feat_active('kissmetrics'), ), 'direct_login' => array( 'label' => esc_html__('Direct Login', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=direct_login') : '', 'icon' => 'fa-direct_login-ihc', 'extra_class' => '', 'description' => esc_html__('Members can login without standard credentials but with a special temporary link available', 'ihc'), 'enabled' => ihc_is_magic_feat_active('direct_login'), ), 'download_monitor_integration' => array( 'label' => esc_html__('Download Monitor Integration', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=download_monitor_integration') : '', 'icon' => 'fa-download_monitor_integration-ihc', 'extra_class' => '', 'description' => esc_html__('Limit the number of downloads (per file or per user) for each Membership', 'ihc'), 'enabled' => ihc_is_magic_feat_active('download_monitor_integration'), ), 'bp_account_page' => array( 'label' => esc_html__('BuddyPress Account Page Integration', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=bp_account_page') : '', 'icon' => 'fa-bp-ihc', 'extra_class' => '', 'description' => '', 'enabled' => ihc_is_magic_feat_active('bp_account_page'), ), 'woo_account_page' => array( 'label' => esc_html__('WooCommerce Account Page Integration', 'ihc'), 'link' => ($oldLogs->FGCS() === '0') ? admin_url('admin.php?page=ihc_manage&tab=woo_account_page') : '', 'icon' => 'fa-woo-ihc', 'extra_class' => '', 'description' => '', 'enabled' => ihc_is_magic_feat_active('woo_account_page'), ), ); $list = apply_filters( 'ihc_magic_feature_list', $list ); // @description Magic feature list. @param list of magic features ( array ) $list[ 'new_extension' ] = array( 'label' => esc_html__( 'Add new Extensions', 'ihc' ), 'link' => 'https://ultimatemembershippro.com/pro-addons/', 'icon' => 'fa-new-extension-ihc', 'extra_class' => 'ihc-new-extension-box', 'description' => '', 'enabled' => 1, ); return $list; } endif; if ( !function_exists( 'ihcNotificationConstants' ) ): /** * @param string * @return string */ function ihcNotificationConstants( $type='' ) { $constants = array( '{username}' => '', '{user_id}' => '', '{user_email}' => '', '{first_name}' => '', '{last_name}' => '', '{account_page}' => '', '{login_page}' => '', '{current_level}' => '', '{current_level_expire_date}' => '', '{level_list}' => '', '{blogname}' => '', '{blogurl}' => '', '{currency}' => '', '{amount}' =>'', '{level_name}' => '', '{current_date}' => '', ); // remove some constants switch ( $type ){ case 'admin_user_register': case 'admin_user_payment': case 'register': case 'register_lite_send_pass_to_user': case 'payment': case 'bank_transfer': case 'expire': case 'ihc_new_subscription_assign_notification-admin': case 'ihc_order_placed_notification-admin': case 'ihc_cancel_subscription_notification-admin': case 'bank_transfer': case 'ihc_order_placed_notification-user': case 'ihc_subscription_activated_notification': case 'ihc_delete_subscription_notification-user': case 'ihc_cancel_subscription_notification-user': break; case 'admin_before_user_expire_level': case 'admin_second_before_user_expire_level': case 'admin_third_before_user_expire_level': case 'admin_user_expire_level': case 'admin_user_profile_update': case 'before_expire': case 'second_before_expire': case 'third_before_expire': case 'user_update': case 'ihc_delete_subscription_notification-admin': unset( $constants['{amount}'] ); unset( $constants['{currency}'] ); break; case 'reset_password_process': case 'reset_password': case 'email_check': case 'email_check_success': case 'change_password': case 'approve_account': case 'delete_account': case 'drip_content-user': case 'review_request': case 'register_lite_send_pass_to_user': unset( $constants['{amount}'] ); unset( $constants['{currency}'] ); unset( $constants['{current_level_expire_date}'] ); unset( $constants['{level_list}'] ); unset( $constants['{level_name}'] ); unset( $constants['{current_level}'] ); break; } // adding some switch ( $type ){ case 'reset_password': $constants['{NEW_PASSWORD}'] = ''; break; case 'reset_password_process': $constants['{password_reset_link}'] = ''; break; case 'drip_content-user': $constants['{POST_LINK}'] = ''; break; case 'email_check': $constants['{verify_email_address_link}'] = ''; break; } $constants = apply_filters( 'ihc_filter_constants_for_notifications', $constants, $type ); return $constants; } endif; if ( !function_exists('indeed_get_unixtimestamp_with_timezone') ): /** * Return unixtimestamp with the timezone set in Wp Admin dashboard. * @param int ( timestamp ) * @return int */ function indeed_get_unixtimestamp_with_timezone( $time='' ) { if ( '' == $time ){ $time = time(); } $date = new DateTime(); $date->setTimestamp( $time ); $date->setTimezone( new DateTimeZone('UTC') ); $time = $date->format('Y-m-d H:i:s'); $time = get_date_from_gmt( $time ); return strtotime( $time ); } endif; if ( !function_exists('indeed_get_current_time_with_timezone') ): /** * Return date with the timezone set in Wp Admin dashboard. * @param int ( timestamp ) * @return string */ function indeed_get_current_time_with_timezone( $time='' ) { if ( '' == $time ){ $time = time(); } $date = new DateTime(); $date->setTimestamp( $time ); $date->setTimezone( new DateTimeZone('UTC') ); $time = $date->format('Y-m-d H:i:s'); return get_date_from_gmt( $time, 'Y-m-d H:i:s' ); } endif; if ( !function_exists( 'indeed_timestamp_to_date_without_timezone' ) ): /** * Convert a timestamp to 'Y-m-d H:i:s' format * @param int * @return string */ function indeed_timestamp_to_date_without_timezone( $timestamp='', $format='Y-m-d H:i:s' ) { if ( '' == $timestamp ){ $timestamp = time(); } $date = new DateTime(); $date->setTimestamp( $timestamp ); $date->setTimezone( new DateTimeZone('UTC') ); return $date->format( $format ); } endif; if ( !function_exists( 'indeedObjectToArray' ) ): function indeedObjectToArray( $object=null ) { if ( is_object( $object ) || is_array( $object ) ){ $return = (array)$object; foreach ($return as &$item) { $item = indeedObjectToArray($item); } return $return; } else { return $object; } } endif; if ( !function_exists( 'ihcIsAdmin' ) ): function ihcIsAdmin() { global $current_user; if ( empty( $current_user->ID ) ){ return false; } if ( is_super_admin( $current_user->ID ) ){ return true; } $userData = get_userdata( $current_user->ID ); if ( !$userData || empty( $userData->roles ) ){ return false; } $isAdmin = in_array( 'administrator', $userData->roles ); $isAdmin = apply_filters( 'ihc_filter_admin_is_admin_check', $isAdmin, $userData->roles ); if ( !$isAdmin ){ return false; } return true; } endif; if ( !function_exists( 'ihcAdminVerifyNonce' ) ): function ihcAdminVerifyNonce() { $nonce = isset( $_SERVER['HTTP_X_CSRF_UMP_ADMIN_TOKEN'] ) ? $_SERVER['HTTP_X_CSRF_UMP_ADMIN_TOKEN'] : ''; if ( wp_verify_nonce( $nonce, 'umpAdminNonce' ) ) { return true; } return false; } endif; if ( !function_exists( 'ihcPublicVerifyNonce' ) ): function ihcPublicVerifyNonce() { $nonce = isset( $_SERVER['HTTP_X_CSRF_UMP_TOKEN'] ) ? $_SERVER['HTTP_X_CSRF_UMP_TOKEN'] : ''; if ( wp_verify_nonce( $nonce, 'umpPublicNonce' ) ) { return true; } return false; } endif; if ( !function_exists( 'ihcStripeMultiplyForCurrency') ): function ihcStripeMultiplyForCurrency( $currency='' ) { $zeroDecimal = [ 'BIF', 'CLP', 'DJF', 'GNF', 'JPY', 'KMF', 'KRW', 'MGA', 'PYG', 'RWF', 'UGX', 'VND', 'VUV', 'XAF', 'XOF', 'XPF', ]; $currency = strtoupper( $currency ); if ( in_array( $currency, $zeroDecimal ) ){ return 1; } return 100; } endif; if ( !function_exists( 'ihcGetDefaultCountry' ) ): function ihcGetDefaultCountry() { $country = get_option( 'ihc_default_country' ); if ( !is_string( $country ) ){ $locale = get_locale(); if ( strpos( $locale, '_' ) !== false ){ $localeData = explode( '_', $locale ); $country = isset( $localeData[1] ) ? $localeData[1] : ''; } } return apply_filters( 'ihc_filter_the_default_country', $country ); } endif; /** * @param array * @return array */ if ( !function_exists( 'indeedFilterVarArrayElements' ) ): function indeedFilterVarArrayElements( $data=[] ) { if ( !is_array( $data ) || count( $data ) == 0 ){ return $data; } foreach ( $data as $key => $value ){ $data[$key] = filter_var( $value, FILTER_SANITIZE_STRING ); } return $data; } endif; if ( !function_exists( 'ihc_payment_workflow' ) ): /** * @param none * @return string */ function ihc_payment_workflow() { $paymentWorkflow = get_option( 'ihc_payment_workflow' ); if ( $paymentWorkflow == '' || $paymentWorkflow === false ){ $paymentWorkflow = 'new'; } //Starting from v.9.9 only new payment integration will be used. $paymentWorkflow = 'new'; $paymentWorkflow = apply_filters( 'ihc_filter_payment_workflow', $paymentWorkflow ); return $paymentWorkflow; } endif; if ( !function_exists( 'ihc_print_array_in_depth') ): function ihc_print_array_in_depth( $array=[] ) { foreach ( $array as $key => $value ){ if ( is_array( $value ) ){ ihc_print_array_in_depth( $value ); } else { echo $key, ': ', $value, '<br/>'; } } } endif; /** * DEPRACATED */ function ihc_do_complete_level_assign_from_ap($uid=0, $lid=0, $start_time=0, $end_time=0) { \Indeed\Ihc\UserSubscriptions::assign( $uid, $lid ); $succees = \Indeed\Ihc\UserSubscriptions::makeComplete( $uid, $lid ); if ($succees){ return TRUE; } return FALSE; } if ( !function_exists( 'ihcSanitizeValue' ) ): function ihcSanitizeValue( $value=null, $type='' ) { switch ( $type ){ case 'email': $value = sanitize_email( $value ); break; case 'textarea': $value = sanitize_textarea_field( $value ); break; case 'text': default: if ( is_array( $value )){ foreach ( $value as $val ){ $val = sanitize_text_field( $val ); } } else { $value = sanitize_text_field( $value ); } break; } return $value; } endif; if ( !function_exists( 'ihcPaymentPlanDetailsAdmin') ): function ihcPaymentPlanDetailsAdmin( $uid=0, $lid=0, $subscriptionId=0 ) { $data = [ 'uid' => $uid, 'lid' => $lid, 'subscriptionMetas' => \Indeed\Ihc\Db\UserSubscriptionsMeta::getAllForSubscription( $subscriptionId ), 'membershipData' => \Indeed\Ihc\Db\Memberships::getOne( $lid ), 'currency' => get_option( 'ihc_currency' ), ]; $view = new \Indeed\Ihc\IndeedView(); return $view->setTemplate( IHC_PATH . 'admin/includes/tabs/payment-plan-details.php' ) ->setContentData( $data, true ) ->getOutput(); } endif; if ( !function_exists( 'ihcPaymentPlanDetailsPublic') ): function ihcPaymentPlanDetailsPublic( $uid=0, $lid=0, $subscriptionId=0 ) { $data = [ 'uid' => $uid, 'lid' => $lid, 'subscriptionMetas' => \Indeed\Ihc\Db\UserSubscriptionsMeta::getAllForSubscription( $subscriptionId ), 'membershipData' => \Indeed\Ihc\Db\Memberships::getOne( $lid ), 'currency' => get_option( 'ihc_currency' ), ]; $view = new \Indeed\Ihc\IndeedView(); return $view->setTemplate( IHC_PATH . 'public/views/payment-plan-details.php' ) ->setContentData( $data, true ) ->getOutput(); } endif; if ( !function_exists( 'ihcGetTimeTypeByCode' ) ): function ihcGetTimeTypeByCode( $timeType='D', $timeValue=0 ) { switch ( $timeType ){ case 'D': if ( $timeValue > 1 ){ $timeType = esc_html__( ' days', 'ihc' ); } else { $timeType = esc_html__( ' day', 'ihc' ); } break; case 'W': if ( $timeValue > 1 ){ $timeType = esc_html__( ' weeks', 'ihc' ); } else { $timeType = esc_html__( ' week', 'ihc' ); } break; case 'M': if ( $timeValue > 1 ){ $timeType = esc_html__( ' months', 'ihc' ); } else { $timeType = esc_html__( ' month', 'ihc' ); } break; case 'Y': if ( $timeValue > 1 ){ $timeType = esc_html__( ' years', 'ihc' ); } else { $timeType = esc_html__( ' year', 'ihc' ); } break; } return $timeType; } endif; if ( !function_exists( 'ihcGetValueFromTwoPossibleArrays' ) ): function ihcGetValueFromTwoPossibleArrays( $arrayOne=[], $arrayTwo=[], $key='' ) { if ( isset( $arrayOne[$key] ) ){ return $arrayOne[$key]; } else if ( isset( $arrayTwo[$key] ) ){ return $arrayTwo[$key]; } return false; } endif; if ( !function_exists( 'ihcAdminUserDetailsPage' ) ): function ihcAdminUserDetailsPage( $uid=0 ) { if ( $uid === false || $uid == 0 ){ return ''; } return admin_url( 'admin.php?page=ihc_manage&tab=user-details&uid=' . $uid ); } endif; if ( !function_exists( 'ihcCheckCheckoutPage' ) ): function ihcCheckCheckoutPage( ) { $value = get_option('ihc_checkout_page'); $shortcode = '[ihc-checkout-page]'; //if page does not exists if($value!=-1 && (!get_post_status($value) || get_post_status($value)=='trash') ){ $value = -1; } if($value==FALSE || $value==-1){ return FALSE; }else{ $post = get_post_field('post_content', $value); if(strpos( $post, $shortcode) === false) { return FALSE; } } return TRUE; } endif; if ( !function_exists( 'ihcCheckCheckoutSetup' ) ): function ihcCheckCheckoutSetup( ) { $payments_not_allowed = []; //$payments_not_allowed = ['stripe']; $allServices = ihc_get_active_payments_services(); $default_payment = get_option('ihc_payment_selected'); $checkPage = ihcCheckCheckoutPage(); if($checkPage === FALSE){ return FALSE; } $checkModule = get_option( 'ihc_checkout_enable', 1 ); if(!isset($checkModule) || $checkModule != 1){ return FALSE; } foreach ($allServices as $key => $value) { if(in_array($key, $payments_not_allowed)){ return FALSE; } } return TRUE; } endif; if ( !function_exists( 'ihcCheckCheckoutPage' ) ): function ihcCheckThankYouPage( ) { $value = get_option('ihc_thank_you_page'); $shortcode = '[ihc-thank-you-page]'; //if page does not exists if($value!=-1 && (!get_post_status($value) || get_post_status($value)=='trash') ){ $value = -1; } if($value==FALSE || $value==-1){ return FALSE; }else{ $post = get_post_field('post_content', $value); if(strpos( $post, $shortcode) === false) { return FALSE; } } return TRUE; } endif; if ( !function_exists( 'indeedCheckIfStripeLibIsAlreadyLoaded' ) ): function indeedCheckIfStripeLibIsAlreadyLoaded() { if ( !class_exists( '\Stripe\StripeClient' ) ){ return false; } if ( !class_exists( '\ReflectionClass' ) ){ return false; } $file = new \ReflectionClass( '\Stripe\StripeClient' ); try { $baseNameFile = plugin_basename( $file->getFileName() ); $baseName = dirname( $baseNameFile ); } catch ( \Exception $e ){ return false; } if ( strpos( $baseName, '/' )){ $baseNameArr = explode( '/', $baseNameFile ); if ( isset( $baseNameArr[0] ) ){ $dir = $baseNameArr[0]; } } if ( !isset( $dir ) ){ return false; } $plugins = get_plugins(); if ( !$plugins ){ return false; } foreach ( $plugins as $pluginName => $pluginData ){ if ( strpos( $pluginName, $dir ) !== false ){ return $pluginData['Name']; } } return false; } endif; /** * @param string * @return bool */ if ( !function_exists( 'ihcRegisterIsFieldRequired' ) ): function ihcRegisterIsFieldRequired( $fieldName='' ) { if ( $fieldName === '' ){ return false; } $registerFields = ihc_get_user_reg_fields(); if ( !$registerFields ){ return false; } $key = ihc_array_value_exists( $registerFields, $fieldName, 'name' ); if ( $key === false ){ return false; } if ( !isset( $registerFields[$key] ) ){ return false; } if ( isset( $registerFields[$key]['req'] ) && (int)$registerFields[$key]['req'] === 1 ){ return true; } return false; } endif; if ( !function_exists( 'ihcSearchForDiviWithNotice' ) ): /** * @param none * @return array */ function ihcSearchForDiviAndExtension() { // search for divi theme if ( !class_exists( 'ET_Theme_Builder_Request' ) ){ // divi is not installed return; } // search for our add-on $exists = file_exists( WP_CONTENT_DIR . '/plugins/ump-divi/ump-divi.php'); $disabled = get_option( 'ihc_disable_divi_mk_message', false ); if ( $exists === false && ( $disabled === false || (int)$disabled + ( 15 * 24 * 60 * 60 ) < time() ) ){ $view = new \Indeed\Ihc\IndeedView(); $html = $view->setTemplate( IHC_PATH . 'admin/includes/elements/divi-message.php' ) ->setContentData( [], true) ->getOutput(); return [ 'status' => 1, 'message' => $html, ]; } return [ 'status' => 0, 'message' => '' ]; } endif; if ( !function_exists( 'ihcSearchForElementorAndExtension' ) ): function ihcSearchForElementorAndExtension() { // search for elementor theme if ( !is_plugin_active( 'elementor/elementor.php' ) ){ // elementor is not installed return; } // search for our add-on $exists = file_exists( WP_CONTENT_DIR . '/plugins/ump-elementor-widget-lock/ump-elementor-widget-lock.php' ); $disabled = get_option( 'ihc_disable_elementor_mk_message', false ); if ( $exists === false && ( $disabled === false || (int)$disabled + ( 15 * 24 * 60 * 60 ) < time() ) ){ $view = new \Indeed\Ihc\IndeedView(); $html = $view->setTemplate( IHC_PATH . 'admin/includes/elements/elementor-message.php' ) ->setContentData( [], true ) ->getOutput(); return [ 'status' => 1, 'message' => $html, ]; } return [ 'status' => 0, 'message' => '' ]; } endif; if ( !function_exists( 'ihcWriteGeneralLog' ) ): function ihcWriteGeneralLog( $message='', $append=false ) { if ( $append ){ file_put_contents( IHC_PATH . 'log.log', $message, FILE_APPEND ); } else { file_put_contents( IHC_PATH . 'log.log', $message ); } } endif; if ( !function_exists( 'ihc_user_has_level' ) ): /** * @param int * @param int * @return bool */ function ihc_user_has_level($u_id, $l_id) { $hasLevel = \Indeed\Ihc\UserSubscriptions::userHasSubscription( $u_id, $l_id ); if ( !$hasLevel ){ return false; } $isActive = \Indeed\Ihc\UserSubscriptions::isActive( $u_id, $l_id ); if ( $isActive ){ return true; } return false; } endif;