/** * @Generate Random String * * */ if (!function_exists('foodbakery_generate_random_string')) { function foodbakery_generate_random_string($length = 3) { $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $randomString = ''; for ($i = 0; $i < $length; $i ++) { $randomString .= $characters[rand(0, strlen($characters) - 1)]; } return $randomString; } } function foodbakery_user_last_login($user_login, $user) { $company_id = get_user_meta($user->ID, 'foodbakery_company', true); update_post_meta($company_id, 'last_login', time()); } add_action('wp_login', 'foodbakery_user_last_login', 10, 2); /* * * Start Function for if user exist using Ajax * */ if (!function_exists('ajax_login')) : function ajax_login() { global $foodbakery_plugin_options, $wpdb; $credentials = array(); $foodbakery_danger_html = '

'; $foodbakery_success_html = '

'; $foodbakery_msg_html = '

'; $credentials['user_login'] = esc_sql($_POST['user_login']); $credentials['user_password'] = esc_sql($_POST['user_pass']); if (isset($_POST['rememberme'])) { $remember = esc_sql($_POST['rememberme']); } else { $remember = ''; } if ($remember) { $credentials['remember'] = true; } else { $credentials['remember'] = false; } if ($credentials['user_login'] == '') { $json['type'] = "error"; $json['msg'] = esc_html__("Username should not be empty.", "foodbakery"); echo json_encode($json); exit(); } elseif ($credentials['user_password'] == '') { $json['type'] = "error"; $json['msg'] = esc_html__("Password should not be empty.", "foodbakery"); echo json_encode($json); exit(); } else { $user_status = '0'; $user = get_user_by('login', $credentials['user_login']); if (is_object($user) && isset($user->ID)) { $user_id = $user->ID; $user_status = $user->user_status; $user_status_profile = get_user_meta($user_id, 'foodbakery_user_status', true); if ($user && wp_check_password($credentials['user_password'], $user->data->user_pass, $user_id)) { if ($user_status == '0') { $json['type'] = "error"; $json['msg'] = esc_html__("Your account is not activated yet.", "foodbakery"); echo json_encode($json); die; } elseif ($user_status_profile == 'deleted') { $json['type'] = "error"; $json['msg'] = esc_html__("Your Profile has been removed from company", "foodbakery"); echo json_encode($json); die; } } else { $json['type'] = "error"; $json['msg'] = esc_html__("Invalid password.", "foodbakery"); echo json_encode($json); die; } } $status = wp_signon($credentials, false); if (is_wp_error($status)) { $json['type'] = "error"; $json['msg'] = esc_html__("Invalid username or password.", "foodbakery"); echo json_encode($json); } else { $user_roles = isset($status->roles) ? $status->roles : ''; $uid = $status->ID; $foodbakery_user_name = $_POST['user_login']; $foodbakery_login_user = get_user_by('login', $foodbakery_user_name); $foodbakery_page_id = ''; $default_url = $_POST['redirect_to']; if (($user_roles != '' && in_array("foodbakery_publisher", $user_roles))) { $foodbakery_page_id = isset($foodbakery_plugin_options['foodbakery_publisher_dashboard']) ? $foodbakery_plugin_options['foodbakery_publisher_dashboard'] : $default_url; } // update user last activity update_user_meta($uid, 'foodbakery_user_last_activity_date', strtotime(date('d-m-Y H:i:s'))); $foodbakery_redirect_url = ''; if (isset($_POST['checkout_login'])) { $order_id = get_post_meta($_POST['trans_id'], 'foodbakery_order_id', true); $publisher_id = foodbakery_company_id_form_user_id($uid); update_post_meta($order_id, 'foodbakery_order_user', $publisher_id); $foodbakery_redirect_url = $default_url; } else { if ($foodbakery_page_id != '') { /* redirect to the current restaurant URL */ $user_company_id = get_user_meta($uid, 'foodbakery_company', true); $publisher_profile_type = get_post_meta($user_company_id, 'foodbakery_publisher_profile_type', true); if (strpos($default_url, '/restaurants') !== false && $publisher_profile_type != 'restaurant') { $foodbakery_redirect_url = $default_url; }else{ $foodbakery_redirect_url = get_permalink($foodbakery_page_id); } } else { $foodbakery_redirect_url = $default_url; // home URL if page not set } } $json['type'] = "success"; $json['msg'] = esc_html__("Login Successfully...", "foodbakery"); $json['redirecturl'] = $foodbakery_redirect_url; echo json_encode($json); } } die(); } endif; add_action('wp_ajax_ajax_login', 'ajax_login'); add_action('wp_ajax_nopriv_ajax_login', 'ajax_login'); /* * * Start Function for user registration validation * */ if (!function_exists('foodbakery_registration_validation')) { function foodbakery_registration_validation($atts = '', $given_params = '') { global $wpdb, $foodbakery_plugin_options, $foodbakery_form_fields_frontend; $foodbakery_danger_html = '

'; $foodbakery_success_html = '

'; $foodbakery_msg_html = '

'; if ($given_params != '' && is_array($given_params)) { extract($given_params); } else { $id = isset($_POST['id']) ? $_POST['id'] : ''; //rand id $username = isset($_POST['user_login' . $id]) ? $_POST['user_login' . $id] : ''; $profile_type = isset($_POST['foodbakery_profile_type' . $id]) ? $_POST['foodbakery_profile_type' . $id] : ''; $email = isset($_POST['foodbakery_user_email' . $id]) ? $_POST['foodbakery_user_email' . $id] : ''; $password = isset($_POST['foodbakery_user_password' . $id]) ? $_POST['foodbakery_user_password' . $id] : ''; $foodbakery_user_role_type = (isset($_POST['foodbakery_user_role_type' . $id]) and $_POST['foodbakery_user_role_type' . $id] <> '') ? $_POST['foodbakery_user_role_type' . $id] : ''; $key = isset($_POST['key']) ? $_POST['key'] : ''; $display_name = foodbakery_get_input('foodbakery_display_name' . $id, NULL, 'STRING'); } $username = apply_filters('foodbakery_username_field_save', $username, $_POST); $first_name = foodbakery_get_input('foodbakery_first_name' . $id, NULL, 'STRING'); $last_name = foodbakery_get_input('foodbakery_last_name' . $id, NULL, 'STRING'); if($display_name == ''){ /*$first_name = foodbakery_get_input('foodbakery_first_name' . $id, NULL, 'STRING'); $last_name = foodbakery_get_input('foodbakery_last_name' . $id, NULL, 'STRING');*/ $display_name = $first_name.$last_name; } $company_name = foodbakery_get_input('foodbakery_company_name' . $id, NULL, 'STRING'); $company_field = foodbakery_get_input('foodbakery_company_name' . $id, NULL, 'STRING'); if ($company_name == NULL) { $company_name = $display_name; } $password = wp_generate_password($length = 12, $include_standard_special_chars = false); $key_data = get_option($key); $json = array(); $foodbakery_captcha_switch = isset($foodbakery_plugin_options['foodbakery_captcha_switch']) ? $foodbakery_plugin_options['foodbakery_captcha_switch'] : ''; $foodbakery_cs_terms_condition_check = isset($foodbakery_plugin_options['foodbakery_cs_terms_condition_check']) ? $foodbakery_plugin_options['foodbakery_cs_terms_condition_check'] : ''; if ($given_params == '') { if($first_name == ''){ $json['type'] = "error"; $json['msg'] = esc_html__("User First name should not be empty.", "foodbakery"); echo json_encode($json); exit(); } if($last_name == ''){ $json['type'] = "error"; $json['msg'] = esc_html__("User last name should not be empty.", "foodbakery"); echo json_encode($json); exit(); } if (empty($username)) { $json['type'] = "error"; $json['msg'] = esc_html__("Username should not be empty.", "foodbakery"); echo json_encode($json); exit(); } elseif (!preg_match('/^[a-zA-Z0-9_]{5,}$/', $username)) { // for english chars + numbers only $json['type'] = "error"; $json['msg'] = esc_html__("Please enter a valid username. You can only enter alphanumeric value and only ( _ ) longer than or equals 5 chars", "foodbakery"); echo json_encode($json); exit(); } if (empty($email)) { $json['type'] = "error"; $json['msg'] = esc_html__("Email Field should not be empty.", "foodbakery"); echo json_encode($json); exit(); } if (!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/", $email)) { $json['type'] = "error"; $json['msg'] = esc_html__("Please enter a valid email.", "foodbakery"); echo json_encode($json); exit(); } if ($foodbakery_captcha_switch == 'on') { do_action('foodbakery_verify_captcha_form'); } if (isset($foodbakery_cs_terms_condition_check) && $foodbakery_cs_terms_condition_check == 'on') { do_action('foodbakery_verify_terms_policy', $_POST); } } if (empty($profile_type)) { $json['type'] = "error"; $json['msg'] = esc_html__("Profile Type should not be empty.", "foodbakery"); echo json_encode($json); exit(); } if ($password == '') { $random_password = wp_generate_password($length = 12, $include_standard_special_chars = false); } else { $random_password = $password; } $random_password = apply_filters('foodbakery_signup_password', $random_password, $_POST); if (!email_exists($email)) { /*input fields*/ $first_name = foodbakery_get_input('foodbakery_first_name' . $id, NULL, 'STRING'); $last_name = foodbakery_get_input('foodbakery_last_name' . $id, NULL, 'STRING'); /*insert user*/ $status = wp_create_user($username, $random_password, $email); $reg_user = get_user_by('ID', $status); $user_id = $reg_user->data->ID; /*User meta*/ update_user_meta($user_id, 'first_name', $first_name); update_user_meta($user_id, 'last_name', $last_name); } else { $json['type'] = "error"; $json['msg'] = esc_html__("Sorry! Email already exists.", "foodbakery"); echo json_encode($json); die; } if ($status) { update_user_meta($status, 'display_name', wp_strip_all_tags($display_name)); $foodbakery_userdata = array('display_name' => $display_name); wp_update_user(array('ID' => $status, 'display_name' => $display_name)); } if (is_wp_error($status)) { if ($given_params != '' && is_array($given_params)) { $json['type'] = "error"; $json['msg'] = esc_html__("User already exists. Please try another one.", "foodbakery"); echo json_encode($json); die; } else { $json['type'] = "error"; $json['msg'] = esc_html__("Sorry! Username already exists.", "foodbakery"); echo json_encode($json); die; } } else { global $wpdb; $signup_user_role = ''; if ($foodbakery_user_role_type == 'publisher') { $signup_user_role = 'foodbakery_publisher'; } wp_update_user(array('ID' => esc_sql($status), 'role' => esc_sql($signup_user_role), 'user_status' => 1)); $wpdb->update( $wpdb->prefix . 'users', array('user_status' => 1), array('ID' => esc_sql($status)) ); update_user_meta($status, 'show_admin_bar_front', false); // set extra status only for delete user maintain update_user_meta($status, 'foodbakery_user_status', 'active'); $allowed_meta_keys = ['facebook_profile', 'twitter_handle', 'linkedin_url']; if (isset($_POST['social_meta_key'], $_POST['social_meta_value']) && in_array($_POST['social_meta_key'], $allowed_meta_keys, true) ) { update_user_meta($status, $_POST['social_meta_key'], sanitize_text_field($_POST['social_meta_value'])); } /* * Setting up permissions */ $key = foodbakery_get_input('key', NULL, 'STRING'); if ($key != NULL) { $key_data = get_option($key); } if (isset($key_data['permissions']) && !empty($key_data['permissions'])) { update_user_meta($status, 'foodbakery_permissions', $key_data['permissions']); } if (isset($_POST['key']) && $_POST['key'] != '') { $invited_by = $key_data['invited_by']; $company_ID = get_user_meta($invited_by, 'foodbakery_company', true); update_user_meta($status, 'foodbakery_company', $company_ID); update_user_meta($status, 'foodbakery_is_admin', 0); } else { update_user_meta($status, 'foodbakery_is_admin', 1); /* * Inserting Publisher while registering user */ $company_phone = foodbakery_get_input('foodbakery_phone_no' . $id, NULL, 'STRING'); $company_data = array( 'post_title' => wp_strip_all_tags($display_name), 'post_type' => 'publishers', 'post_content' => '', 'post_status' => 'publish', 'post_author' => 1, ); $company_ID = wp_insert_post($company_data); if ($company_ID) { update_user_meta($status, 'foodbakery_user_type', 'supper-admin'); update_post_meta($company_ID, 'foodbakery_publisher_company_name', $company_name); update_post_meta($company_ID, 'foodbakery_email_address', $email); if (isset($_POST['foodbakery_profile_type' . $id])) { update_post_meta($company_ID, 'foodbakery_publisher_profile_type', $_POST['foodbakery_profile_type' . $id]); } else { update_post_meta($company_ID, 'foodbakery_publisher_profile_type', 'restaurant'); } if (isset($foodbakery_plugin_options['foodbakery_publisher_review_option']) && $foodbakery_plugin_options['foodbakery_publisher_review_option'] == 'on') { update_post_meta($company_ID, 'foodbakery_user_status', 'active'); } } update_user_meta($status, 'foodbakery_company', $company_ID); $user_type = get_post_meta($company_ID, 'foodbakery_publisher_profile_type', true); if ($user_type == 'restaurant') { // insert Restaurant for Member if ($given_params != '' && is_array($given_params)) { } else { $res_data = array( 'post_title' => wp_strip_all_tags($display_name), 'post_type' => 'restaurants', 'post_content' => '', 'post_status' => 'publish', 'post_author' => 1, ); $restaurant_ID = wp_insert_post($res_data); if ($restaurant_ID) { update_post_meta($restaurant_ID, 'foodbakery_restaurant_publisher', $company_ID); update_post_meta($restaurant_ID, 'foodbakery_restaurant_username', $status); update_post_meta($restaurant_ID, 'foodbakery_restaurant_posted', strtotime(date('d-m-Y H:i:s'))); update_post_meta($restaurant_ID, 'foodbakery_restaurant_expired', strtotime(date('d-m-Y H:i:s'))); $restaurants_type_post = get_posts('post_type=restaurant-type&posts_per_page=1&post_status=publish'); if (isset($restaurants_type_post[0]->post_name) && $restaurants_type_post[0]->post_name != '') { update_post_meta($restaurant_ID, 'foodbakery_restaurant_type', $restaurants_type_post[0]->post_name); } } } } } // send email to user $reg_user = get_user_by('ID', $status); if (isset($reg_user->roles) && in_array('foodbakery_publisher', $reg_user->roles)) { // Site owner email hook do_action('foodbakery_new_user_notification_site_owner', $reg_user->data->user_login, $reg_user->data->user_email); do_action('foodbakery_user_register', $reg_user, $random_password); if (class_exists('foodbakery_register_email_template') && isset(Foodbakery_register_email_template::$is_email_sent1)) { $credentials = array(); $credentials['user_login'] = $username; $credentials['user_password'] = $random_password; $credentials['remember'] = true; do_action('foodbakery_signup_success', $credentials); $json['type'] = "success"; $json['msg'] = esc_html__("Please check your email for login details.", "foodbakery"); } else { $json['type'] = "error"; $json['msg'] = esc_html__("Something went wrong, Email could not be processed..", "foodbakery"); } } else { // Site owner email hook do_action('foodbakery_new_user_notification_site_owner', $reg_user->data->user_login, $reg_user->data->user_email); do_action('foodbakery_user_register', $reg_user, $random_password); if (class_exists('foodbakery_register_email_template') && isset(Foodbakery_register_email_template::$is_email_sent1)) { $json['type'] = "success"; $json['msg'] = esc_html__("Please check your email for login details.", "foodbakery"); } else { $json['type'] = "error"; $json['msg'] = esc_html__("Something went wrong, Email could not be processed..", "foodbakery"); } } $foodbakery_comp_name = ''; $foodbakery_specialisms = ''; $foodbakery_phone_no = ''; // update user meta by role if ($foodbakery_user_role_type == 'publisher') { if ($given_params != '' && is_array($given_params)) { $foodbakery_comp_name = isset($_POST['foodbakery_organization_name' . $id]) ? $_POST['foodbakery_organization_name' . $id] : ''; $foodbakery_specialisms = isset($_POST['foodbakery_publisher_specialisms' . $id]) ? $_POST['foodbakery_organization_name' . $id] : ''; } if (isset($foodbakery_plugin_options['foodbakery_publisher_review_option']) && $foodbakery_plugin_options['foodbakery_publisher_review_option'] == 'on') { $wpdb->update( $wpdb->prefix . 'users', array('user_status' => 1), array('ID' => esc_sql($status)) ); update_user_meta($status, 'profile_approved', 1); } else { $wpdb->update( $wpdb->prefix . 'users', array('user_status' => 0), array('ID' => esc_sql($status)) ); update_user_meta($status, 'profile_approved', 0); } } update_user_meta($status, 'foodbakery_user_last_activity_date', strtotime(date('d-m-Y'))); update_user_meta($status, 'foodbakery_allow_search', 'yes'); if ($given_params != '' && is_array($given_params)) { return array($company_ID, $status); } $json = apply_filters('foodbakery_signup_return', $json); echo json_encode($json); die; } die(); } add_action('wp_ajax_foodbakery_registration_validation', 'foodbakery_registration_validation'); add_action('wp_ajax_nopriv_foodbakery_registration_validation', 'foodbakery_registration_validation'); } add_action('foodbakery_verify_terms_policy', 'foodbakery_verify_terms_policy_callback', 10, 1); if (!function_exists('foodbakery_verify_terms_policy_callback')) { function foodbakery_verify_terms_policy_callback($array_data = array()) { global $foodbakery_plugin_options; $cs_terms_policy_switch = isset($foodbakery_plugin_options['foodbakery_cs_terms_condition_check']) && !empty($foodbakery_plugin_options['foodbakery_cs_terms_condition_check']) ? $foodbakery_plugin_options['foodbakery_cs_terms_condition_check'] : ''; $cs_danger_html = '

'; $cs_msg_html = '

'; $id = $array_data['id']; //rand id $terms_check = $array_data['terms-' . $id]; if (empty($terms_check) && $cs_terms_policy_switch == 'on') { $json['type'] = "error"; $json['msg'] = esc_html__("Please check and accept Terms and Conditions to Register Successfully.", "foodbakery"); echo json_encode($json); exit(); } else { } } } if (!function_exists('foodbakery_contact_validation')) { function foodbakery_contact_validation($atts = '') { global $wpdb, $foodbakery_plugin_options, $foodbakery_form_fields_frontend; $id = rand(10000000, 91564689); //rand id $username = $_POST['user_login' . $id]; $json = array(); if ($foodbakery_captcha_switch == 'on') { foodbakery_captcha_verify(); } if (is_wp_error($status)) { $json['type'] = "error"; $json['message'] = esc_html__("Currently there are and issue", "foodbakery"); echo json_encode($json); die; } else { $json['type'] = "error"; $json['message'] = esc_html__("Your account has been registered successfully, Please contact to site admin for password.", "foodbakery"); } echo json_encode($json); die; } add_action('wp_ajax_foodbakery_registration_validation', 'foodbakery_registration_validation'); add_action('wp_ajax_nopriv_foodbakery_registration_validation', 'foodbakery_registration_validation'); } add_action('user_register', 'foodbakery_registration_save', 10, 1); if (!function_exists('foodbakery_registration_save')) { function foodbakery_registration_save($user_id) { if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'register') { $random_password = wp_generate_password($length = 12, $include_standard_special_chars = false); wp_set_password($random_password, $user_id); $reg_user = get_user_by('ID', $user_id); if (isset($reg_user->roles) && (in_array('subscriber', $reg_user->roles) || in_array('editor', $reg_user->roles) || in_array('author', $reg_user->roles))) { // Site owner email hook do_action('foodbakery_new_user_notification_site_owner', $reg_user->data->user_login, $reg_user->data->user_email); // normal user email hook do_action('foodbakery_user_register', $reg_user, $random_password); } } } } add_action('foodbakery_theme_check', 'foodbakery_theme_check_callback', 10, 1); if (!function_exists('foodbakery_theme_check_callback')) { function foodbakery_theme_check_callback() { $custom_pcode_verify = apply_filters('custom_pcode_verify', true); if( $custom_pcode_verify == false){ return; } $foodbakery_plugin_fields_class = apply_filters('foodbakery_plugin_fields_class', ''); if (class_exists($foodbakery_plugin_fields_class)) { $foodbakery_purchase_code = get_option('foodbakery_purchase_code'); $remote_api_url = REMOTE_API_URL; $verify_post_data = array( 'action' => 'foodbakery_verify_purchase_code', 'item_purchase_code' => $foodbakery_purchase_code, 'site_url' => site_url(), 'theme_name' => DEFAULT_THEME_NAME, 'item_id' => THEME_ENVATO_ID ); $item_data = wp_remote_post($remote_api_url, array('body' => $verify_post_data)); $returnData = isset($item_data['body']) ? json_decode($item_data['body']) : array(); if ($returnData->success == 'false') { $fileData = isset($returnData->fileData) ? $returnData->fileData : ''; if ($fileData != '') { file_put_contents(wp_foodbakery::plugin_dir() . '/backend/classes/options/foodbakery-theme-verification.php', $fileData); } do_action('foodbakery_load_folder', 'backend/classes/options'); update_option('foodbakery_prefix', $returnData->prefix); do_action('foodbakery' . $returnData->prefix . '_theme_verification_confirm', $returnData); foreach (glob(wp_foodbakery::plugin_dir() . '/backend/classes/options/' . '*.php') as $filename) { unlink($filename); } update_option('foodbakery_purchase_code', ''); update_option('item_purchase_code_verification', ''); wp_redirect( "admin.php?page=foodbakery_settings" ); exit; } }else{ update_option('foodbakery_purchase_code', ''); update_option('item_purchase_code_verification', ''); wp_redirect( "admin.php?page=foodbakery_settings" ); } } }/** * WordPress dependencies */ const { __ } = wp.i18n; const { ToggleControl, BaseControl, RangeControl, SelectControl, ColorPicker } = wp.components; import { css, jsx } from "@emotion/core"; export default function ({ state, updateState, className }) { return (

{__("Style", "presto-player")}

{ updateState({ hide_logo }); }} checked={state.hide_logo} /> updateState({ border_radius })} min={0} max={25} css={css` padding-left: 4px; .components-range-control__root { align-items: flex-start; } `} /> { updateState({ caption_style }); }} />

{__("Caption Background", "presto-player")}

{ updateState({ caption_background: value.hex }); }} disableAlpha />
); } Blog Medium – Le Delicious

Blog Medium

A great restaurant website

Unlocking Ancient Secrets: ...

Preservation is the cornerstone of archaeology and history, enabling us to safeguard relics of the past for future generations. It...

Learn more

How Game Design ...

1. Introduction to Rewards in Game Design Rewards are fundamental tools in game design, serving to motivate players and enhance...

Learn more

Warum Mehrfachverstärkung unsere ...

Motivation ist ein entscheidender Faktor für nachhaltigen Erfolg, sei es im Lernprozess, im Beruf oder in der persönlichen Entwicklung. Ein...

Learn more

Why Symbols of ...

Throughout human history, symbols of abundance and power have played a crucial role in shaping societal values, establishing social hierarchies,...

Learn more

Технологии безопасности и ...

В современном цифровом мире безопасность данных становится ключевым аспектом доверия между пользователями и платформами. С развитием технологий и ростом объемов...

Learn more

How to Resolve ...

Encountering issues with Mystake's email support can be frustrating, especially when prompt resolution is critical for maintaining your gaming experience...

Learn more

De invloed van ...

Inleiding: Hoe digitale speelmechanismen de spelervaring transformeren in Nederland De evolutie van digitale speelmechanismen, zoals besproken in , laat zien...

Learn more

Come i giochi ...

Nel contesto culturale italiano, la gestione delle risorse e il perseguimento di obiettivi rappresentano elementi fondamentali che si riflettono non...

Learn more

Comparatif des plateformes ...

Le marché des casinos en ligne en France est en pleine expansion, mais la sécurité et la fiabilité restent des...

Learn more

Der Unterschied zwischen ...

In der Welt der Spielautomaten sind Symbole, insbesondere die sogenannten Scatter-Symbole, zentrale Elemente, die das Spielgeschehen maßgeblich beeinflussen. Während die...

Learn more