function save_advanced($op) { $advanced = op_page_option('color_scheme_advanced'); $advanced = is_array($advanced) ? $advanced : array(); $typography = op_typography_elements(); $current_typography = op_page_option('typography'); if (!is_array($current_typography)) { $current_typography = op_page_config('default_config', 'typography'); if (!is_array($current_typography)) { $current_typography = array(); } } if (!isset($current_typography['color_elements'])) { $current_typography['color_elements'] = array(); } $elements = array('page' => array('link_color' => 'link_color', 'link_hover_color' => 'link_hover_color'), 'footer' => array('text_color' => 'footer_text_color', 'link_color' => 'footer_link_color', 'link_hover_color' => 'footer_link_hover_color'), 'feature_area' => array('text_color' => 'feature_text_color', 'link_color' => 'feature_link_color', 'link_hover_color' => 'feature_link_hover_color')); $options = $this->_advanced_sections(); foreach ($options as $section => $settings) { $vals = op_get_var($op, $section, array()); if (!isset($advanced[$section])) { $advanced[$section] = array(); } $start_color = ''; foreach ($settings['elements'] as $name => $options) { $tmp = op_get_var($vals, $name); //Check if this is a gradient. If so, and the bottom color is empty, set to first color if (strstr($name, '_start')) { $start_color = $tmp; } if (strstr($name, '_end') && empty($tmp)) { $tmp = $start_color; } if (isset($options['text_decoration'])) { $newtmp = array('color' => op_get_var($tmp, 'color'), 'text_decoration' => op_get_var($tmp, 'text_decoration')); } else { $newtmp = $tmp; } $advanced[$section][$name] = $newtmp; if (isset($elements[$section])) { if (isset($elements[$section][$name])) { $current_typography['color_elements'][$elements[$section][$name]] = $newtmp; } } } } op_update_page_option('typography', $current_typography); /*$options = array( 'header' => array('nav_bar_start','nav_bar_end','nav_bar_link'), 'feature_area' => array('feature_start','feature_end'), 'footer' => array('footer_start','footer_end'), 'page' => array('repeating_bg','bg_color','link_color') ); foreach($options as $name => $fields){ $vals = op_get_var($op,$name,array()); if(!isset($advanced[$name])){ $advanced[$name] = array(); } foreach($fields as $f){ $advanced[$name][$f] = op_get_var($vals,$f); } }*/ op_update_page_option('color_scheme_advanced', $advanced); }
function save_features() { //opLog('POST: ' . print_r($_POST, true)); //opLog('OPTIONS :' . print_r($this->options, true)); $font_options = op_page_option('feature_area', 'settings', 'font_options'); if (!is_array($font_options)) { $font_options = array(); } if ($this->enabled && count($this->options) > 0) { foreach ($this->options as $name => $options) { if ($name == 'template') { continue; } $op = op_post('feature_area', $name); $mod_options = op_get_var($options, 'mod_options', array()); $module = op_mod($options['module'], op_get_var($options, 'module_type', 'blog'))->save_settings(array('feature_area', $name), $mod_options, $op, true, true); if ($options['module'] == 'content_fields') { if (isset($module[0])) { $font_options[$name] = $module[1]; $module = $module[0]; } } op_update_page_option('feature_area', 'settings', $name, $module); } } op_update_page_option('feature_area', 'settings', 'font_options', $font_options); }
function save_size_color($op) { $theme_option = op_page_option('feature_area', 'type'); $size_color = op_page_option('size_color'); $size_color = $size_color === false ? array() : $size_color; $size_color['box_color_start'] = op_get_var($op, 'box_color_start', op_default_page_option($theme_option, 'size_color', 'box_color_start')); $size_color['box_color_end'] = op_get_var($op, 'box_color_end', op_default_page_option($theme_option, 'size_color', 'box_color_end')); $size_color['box_width'] = op_get_var($op, 'box_width', op_default_page_option($theme_option, 'size_color', 'box_width')); op_update_page_option('size_color', $size_color); }
function op_page_set_saved_settings($result, $keep_options = array()) { $get_layout = true; $merge_scripts = false; $layout_settings = unserialize(base64_decode($result->settings)); foreach ($keep_options as $keep) { if ($keep == 'content') { $get_layout = false; } elseif ($keep == 'scripts') { $merge_scripts = true; } elseif ($keep == 'color_scheme') { if (isset($layout_settings['color_scheme_advanced'])) { unset($layout_settings['color_scheme_advanced']); } if (isset($layout_settings['color_scheme_template'])) { unset($layout_settings['color_scheme_template']); } } elseif (isset($layout_settings[$keep])) { unset($layout_settings[$keep]); } } foreach ($layout_settings as $option => $settings) { if (!empty($settings)) { $settings = unserialize(base64_decode($settings)); $current = op_page_option($option); if ($option == 'scripts') { if ($merge_scripts === true) { $new_scripts = array(); $script_opts = array('header', 'footer', 'css'); foreach ($script_opts as $opt) { $cur = op_get_var($current, $opt, array()); $new = op_get_var($settings, $opt, array()); foreach ($new as $n) { $cur[] = $n; } $new_scripts[$opt] = $cur; } $current = $new_scripts; } else { $current = $settings; } } else { if (is_array($current) && is_array($settings)) { $current = array_merge($current, $settings); } else { $current = $settings; } } op_update_page_option($option, $current); } } if ($get_layout === true) { $layouts = unserialize(base64_decode($result->layouts)); if (is_array($layouts)) { foreach ($layouts as $type => $layout) { op_page_update_layout($layout, $type); } } } }
function save_landing_bg($op) { $landing = op_page_option('landing_bg'); $landing = $landing === false ? array() : $landing; $landing['image'] = op_get_var($op, 'image', op_default_page_option('landing_bg', 'image')); op_update_page_option('landing_bg', $landing); }
function save_step_4() { $op_fonts = new OptimizePress_Fonts(); $op = $_POST['op']; foreach ($this->sections as $name => $section) { $sections = $section['object']->sections(); foreach ($sections as $section_name => $section_section) { if (is_array($section_section)) { if (isset($section_section['save_action'])) { call_user_func_array($section_section['save_action'], array(op_get_var($op, $section_name, array()))); } if (isset($section_section['module'])) { $mod_ops = op_get_var($op, $section_name, array()); $opts = op_get_var($section_section, 'options', array()); op_mod($section_section['module'], op_get_var($section_section, 'module_type', 'blog'))->save_settings($section_name, $opts, $mod_ops); } } } } //Set this page's typography settings to be that of the defaults $default_typography = op_default_option('default_typography'); if (!empty($default_typography) && isset($default_typography['font_elements'])) { foreach ($default_typography['font_elements'] as $typography) { $op_fonts->add_font($typography['font']); } op_update_page_option('typography', $default_typography); } if (op_has_error()) { $this->error = __('There was a problem processing the form, please review the errors below', OP_SN); } /* else { $this->notification = __('Your page settings have been updated.',OP_SN); }*/ $this->_redirect(); }
/** * AJAX calls this function to save membership section of Live editor * @return void */ function save_membership() { global $wpdb; $this->check_nonce(); $this->init_page(); $postId = $wpdb->escape($_POST['page_id']); if (defined("WS_PLUGIN__OPTIMIZEMEMBER_VERSION")) { c_ws_plugin__optimizemember_meta_box_saves::save_meta_boxes($postId); } // saving membership pages options $op = op_post('op'); $current = op_page_option('membership', 'layout'); // this happens only if we have something to save (it is a membership page!) if (!empty($op['pageType']['type']) && $op['pageType']['type'] == 'product') { update_post_meta($op['pageId'], 'type', 'product'); op_update_page_option('membership', 'layout', $op['page']['preset_option']); // change title and slug $post = array('ID' => $op['pageId'], 'post_title' => $op['product']['name'], 'post_name' => sanitize_title($op['product']['name']), 'post_parent' => ''); wp_update_post($post); } if (empty($op['pageType']['type']) && !empty($op) && empty($op['type'])) { // saving product! update_post_meta($op['pageId'], 'type', 'product'); op_update_page_option('membership', 'layout', $op['page']['preset_option']); // change title and slug $post = array('ID' => $op['pageId'], 'post_title' => $op['product']['name'], 'post_name' => sanitize_title($op['product']['name']), 'post_parent' => ''); wp_update_post($post); } else { if ($op['pageType']['type'] == 'category') { $page_id = $op['pageId']; $post = array('ID' => $op['pageId'], 'post_title' => $op['category']['name'], 'post_name' => sanitize_title($op['category']['name']), 'post_parent' => $op['pageType']['product']); wp_update_post($post); $value = array('layout' => $op['page']['preset_option'], 'description' => base64_encode($op['category']['description'])); update_post_meta($page_id, '_' . OP_SN . '_membership', maybe_serialize($value)); $value = array('type' => 'membership', 'dir' => $op['theme']); update_post_meta($page_id, '_' . OP_SN . '_theme', maybe_serialize($value)); } else { if ($op['pageType']['type'] == 'subcategory') { $page_id = $op['pageId']; $post = array('ID' => $op['pageId'], 'post_title' => $op['subcategory']['name'], 'post_name' => sanitize_title($op['subcategory']['name']), 'post_parent' => $op['subcategory']['category']); wp_update_post($post); $value = array('layout' => $op['page']['preset_option'], 'description' => base64_encode($op['subcategory']['description'])); update_post_meta($page_id, '_' . OP_SN . '_membership', maybe_serialize($value)); $value = array('type' => 'membership', 'dir' => $op['theme']); update_post_meta($page_id, '_' . OP_SN . '_theme', maybe_serialize($value)); } else { if ($op['pageType']['type'] == 'content') { if (!empty($op['content']['subcategory'])) { $parentId = $op['content']['subcategory']; } else { if (!empty($op['content']['category'])) { $parentId = $op['content']['category']; } else { $parentId = $op['pageType']['product']; } } $page_id = $op['pageId']; $post = array('ID' => $op['pageId'], 'post_title' => $op['content']['name'], 'post_name' => sanitize_title($op['content']['name']), 'post_parent' => $parentId); wp_update_post($post); $value = array('layout' => $op['page']['preset_option'], 'description' => base64_encode($op['content']['description'])); update_post_meta($page_id, '_' . OP_SN . '_membership', maybe_serialize($value)); $value = array('type' => 'membership', 'dir' => $op['theme']); update_post_meta($page_id, '_' . OP_SN . '_theme', maybe_serialize($value)); } } } if (!empty($op['type'])) { $post = array('ID' => $op['pageId'], 'post_parent' => ''); if ($op['type'] == 'product') { wp_update_post($post); } update_post_meta($op['pageId'], 'type', $op['type']); } } //error_log(OP_PAGEBUILDER_ID); if (!empty($op['typeForChange'])) { $value = array('type' => 'membership', 'dir' => '1'); update_post_meta(OP_PAGEBUILDER_ID, '_' . OP_SN . '_theme', maybe_serialize($value)); update_post_meta(OP_PAGEBUILDER_ID, 'type', $op['typeForChange']); } /* * DAP integration */ if (isset($op['membership']['dap_redirect_url'])) { update_post_meta($postId, 'dap_redirect_url', $op['membership']['dap_redirect_url']); } /* * Fast Member integration */ if (isset($op['membership']['fast_member_redirect_url'])) { update_post_meta($postId, 'fast_member_redirect_url', $op['membership']['fast_member_redirect_url']); } /* * iMember360 integration */ if (isset($op['membership']['imember_redirect_url'])) { update_post_meta($postId, 'imember_redirect_url', $op['membership']['imember_redirect_url']); } echo json_encode(array('done' => true)); exit; }
/** * We create a dummy (draft) page that is populated for content preview. */ function content_layout_preview() { global $user_ID; global $wpdb; $page = get_page_by_path('op_content_layout_preview_page'); // Page already exists if (is_object($page)) { $page_id = $page->ID; } else { $page['post_type'] = 'page'; $page['post_content'] = ''; $page['post_parent'] = 0; $page['post_author'] = $user_ID; $page['post_status'] = 'op_preview'; $page['post_title'] = 'OptimizePress Content Preview Page'; $page['post_name'] = 'op_content_layout_preview_page'; $page_id = wp_insert_post($page); /* Add Page Failed */ if ($page_id == 0) { die('Error creating new page.'); } } echo get_permalink($page_id) . '?op-no-admin-bar=true'; define('OP_PAGEBUILDER_ID', $page_id); $template = $_POST['template']; /*$result = $wpdb->get_row($wpdb->prepare( "SELECT `layouts`,`settings`,`guid` FROM `{$wpdb->prefix}optimizepress_predefined_layouts` WHERE `id`=%d ORDER BY name ASC", $template ));*/ $result = $wpdb->get_row($wpdb->prepare("SELECT `layouts`,`settings` FROM `{$wpdb->prefix}optimizepress_predefined_layouts` WHERE `id`=%d ORDER BY name ASC", $template)); $keep = op_post('keep_options'); if (!is_array($keep)) { $keep = array(); } // Set page template ID if it exists - this will be used for stats and analytics /*if (isset($result->guid) && !empty($result->guid)) { op_update_page_option('template_id', $result->guid); }*/ op_update_page_option('pagebuilder', 'Y'); op_page_set_saved_settings($result, $keep); die; }
function save_settings($section_name, $config = array(), $op, $return = false) { $settings = array('enabled' => op_get_var($op, 'enabled', 'N'), 'show_on' => op_get_var($op, 'show_on', 'load'), 'type' => op_get_var($op, 'type', 'html'), 'optin_form' => op_mod('signup_form')->save_settings(array($section_name, 'optin_form'), array('disable' => 'color_scheme|on_off_switch'), op_get_var($op, 'optin_form', array()), true), 'html_content' => op_mod('content_fields')->save_settings(array($section_name, 'html_content'), array('fields' => array('content' => array('type' => 'textarea'))), op_get_var($op, 'html_content', array()), true)); op_update_page_option($section_name, $settings); }