function on_woocommerce_waitlist_loaded() { $canView_settings = false; if (is_user_logged_in()) { global $current_user, $wpdb; $allowed_settings_role = array("administrator"); $wew_enable_shop_manager_settings = get_option('wew-enable-shop-manager-settings') && get_option('wew-enable-shop-manager-settings') == "on" ? true : false; if ($wew_enable_shop_manager_settings) { $allowed_settings_role[] = "shop_manager"; } $user = get_userdata($current_user->ID); $capabilities = $user->{$wpdb->prefix . 'capabilities'}; if (!isset($wp_roles)) { $wp_roles = new WP_Roles(); } foreach ($wp_roles->role_names as $role => $name) { if (array_key_exists($role, $capabilities)) { if (!$canView_settings && in_array($role, $allowed_settings_role)) { $canView_settings = true; } } } } if ($canView_settings) { require_once plugin_dir_path(__FILE__) . 'admin/class-woocommerce-waitlist.php'; Woocommerce_Waitlist_Admin::get_instance(); } }
/** * Hook - Execute before wp_header() * * @since 3.0.0 * * @var string */ public function execute_before_wp_header() { if (isset($_GET['delete'])) { global $wpdb; $wew_DBtable_name = $wpdb->prefix . 'woocommerce_waitlist'; $_GET['delete'] = absint($_GET['delete']); $wpdb->query("DELETE FROM " . $wew_DBtable_name . " WHERE id='" . $_GET['delete'] . "'"); } elseif (isset($_POST) && !empty($_POST)) { if (isset($_POST['action'])) { switch ($_POST['action']) { case "update_woowaitlist_settings": $wew_subscribe_to_waitlist_str = trim(wp_unslash($_POST['wew-subscribe-to-waitlist-str'])); update_option('wew-subscribe-to-waitlist-str', $wew_subscribe_to_waitlist_str); if (isset($_POST['wew-subscribe-backorders'])) { $subscribe_backorders = $_POST['wew-subscribe-backorders'] == "on" ? "on" : ""; } else { $subscribe_backorders = ""; } update_option('wew-subscribe-backorders', $subscribe_backorders); $remove_onUninstall = trim($_POST['wew-remove-waitlist-on-uninstall']) != "" ? wp_unslash($_POST['wew-remove-waitlist-on-uninstall']) : ""; update_option('wew-remove-waitlist-on-uninstall', $remove_onUninstall); $unsubscribe_page = intval($_POST['wew-unsubscribe-page']); update_option('wew-unsubscribe-page', $unsubscribe_page); if (current_user_can("manage_options")) { if (isset($_POST['wew-enable-shop-manager-settings'])) { $shop_manager_settings = $_POST['wew-enable-shop-manager-settings'] == "on" ? "on" : ""; } else { $shop_manager_settings = ""; } update_option('wew-enable-shop-manager-settings', $shop_manager_settings); } if (isset($_POST['wew-admin-notification-on-subscription'])) { $admin_subscriptions_notifications = $_POST['wew-admin-notification-on-subscription'] == "on" ? "on" : ""; } else { $admin_subscriptions_notifications = ""; } update_option('wew-admin-notification-on-subscription', $admin_subscriptions_notifications); $oos_message = trim(wp_unslash($_POST['wew-out-of-stock-message'])); update_option('wew-out-of-stock-message', $oos_message); $voos_message = trim(wp_unslash($_POST['wew-variations-out-of-stock-message'])); update_option('wew-variations-out-of-stock-message', $voos_message); $sproduct_success = trim(wp_unslash($_POST['wew-subscribe-product-success-msg'])); update_option('wew-subscribe-product-success-msg', $sproduct_success); $svariation_success = trim(wp_unslash($_POST['wew-subscribe-variation-success-msg'])); update_option('wew-subscribe-variation-success-msg', $svariation_success); $already_subscribed_product = trim(wp_unslash($_POST['wew-already-product-subscribed'])); update_option('wew-already-product-subscribed', $already_subscribed_product); $already_subscribed_variation = trim(wp_unslash($_POST['wew-already-variation-subscribed'])); update_option('wew-already-variation-subscribed', $already_subscribed_variation); $emptyEmail_alert_msg = trim(wp_unslash($_POST['wew-no-email-alert'])); update_option('wew-no-email-alert', $emptyEmail_alert_msg); $custom_css_style = trim(wp_unslash($_POST['wew-custom-css'])); update_option('wew-custom-css', $custom_css_style); $a = Woocommerce_Waitlist_Admin::get_instance(); $success_message = __("Settings saved successful.", $a->plugin_slug); $a->set_plugin_msg($success_message, 0); break; case "update_woowaitlist_email_settings": $notifyAvail = trim(wp_unslash($_POST['wew-notify-available-product'])); $r1 = update_option('wew-notify-available-product', $notifyAvail); $subMail_fromName = trim(wp_unslash($_POST['wew-subscription-email-from-name'])); $r2 = update_option('wew-subscription-email-from-name', $subMail_fromName); $subMail_subject = trim(wp_unslash($_POST['wew-subscription-email-subject'])); $r3 = update_option('wew-subscription-email-subject', $subMail_subject); $default_emailSettings = !isset($_POST['woowaitilist-default-email-options']) || $_POST['woowaitilist-default-email-options'] != "on" ? "unselected" : "on"; $r4 = update_option('woowaitilist-default-email-options', $default_emailSettings); $insertedSenderEmail = trim($_POST['notifications-sender-email']); $custom_senderEmail = $insertedSenderEmail ? $insertedSenderEmail : ""; $r5 = update_option('notifications-sender-email', $custom_senderEmail); $back_in_stock_quantity = intval($_POST['wew-back-in-stock_quantity']); $r6 = update_option('wew-back-in-stock_quantity', $back_in_stock_quantity); $a = Woocommerce_Waitlist_Admin::get_instance(); if ($default_emailSettings == "unselected" && !is_email($custom_senderEmail)) { $success_message = __("Please insert a valid email address.", $a->plugin_slug); $a->set_plugin_msg($success_message, 1); } else { $success_message = __("Email settings saved successful.", $a->plugin_slug); $a->set_plugin_msg($success_message, 0); } break; case "update_woowaitlist_data": global $wpdb; $wew_DBtable_name = $wpdb->prefix . 'woocommerce_waitlist'; if (isset($_POST['wewd_id']) && !empty($_POST['wewd_id'])) { $checked_elem = false; if (isset($_POST['wew_data_actions_changes-2'])) { $checked_elem = $_POST['wew_data_form_actions-2']; } elseif (isset($_POST['wew_data_actions_changes'])) { $checked_elem = $_POST['wew_data_form_actions']; } if ($checked_elem) { switch ($checked_elem) { case 'delete': if (is_array($_POST['wewd_id'])) { $pids_array = $_POST['wewd_id']; foreach ($pids_array as $key => $value) { $v = absint($value); $wpdb->query("DELETE FROM " . $wew_DBtable_name . " WHERE id='" . $v . "'"); } } break; case 'export': $this->export_woowaitilist_data($_POST['wewd_id']); break; } } } break; } } } }
$plugin_slug = 'woocommerce-waitlist'; $tabs = array('woowaitlist_settings' => __('WooWaitlist Settings', $plugin_slug), 'email_settings' => __('Email Settings', $plugin_slug), 'woowaitlist_data' => __('WooWaitlist Data', $plugin_slug)); echo '<div id="icon-themes" class="icon32"><br></div>'; echo '<h2 class="nav-tab-wrapper">'; foreach ($tabs as $tab => $name) { $class = $tab == $current ? ' nav-tab-active' : ''; if ($tab == "woowaitlist_settings") { $tab_str = ""; } else { $tab_str = "&tab={$tab}"; } echo "<a class='nav-tab{$class}' href='?page=" . $plugin_slug . $tab_str . "'>{$name}</a>"; } echo '</h2>'; } $a = Woocommerce_Waitlist_Admin::get_instance(); $message = $a->get_plugin_msg(); $errorMessage = $message['error']; $message = $message['message']; $updated_html = ""; if ($message) { $updated_classes = array('updated'); if ($errorMessage) { $updated_classes[] = 'error'; } $updated_html .= "<div class='" . implode(" ", $updated_classes) . "'>"; $updated_html .= $message; $updated_html .= "</div>"; } ?>