Ejemplo n.º 1
0
 public function update_options()
 {
     if (!check_ajax_referer('layers-onboarding-update-options', 'layers_onboarding_update_nonce', false)) {
         die('You threw a Nonce exception');
     }
     // Nonce
     // Parse our input data
     parse_str(urldecode(stripslashes($_POST['data'])), $data);
     $return_message = array('success' => true, 'message' => __('Done!', 'layerswp'));
     foreach ($data as $option_key => $option_value) {
         $clean_option_value = esc_attr(stripslashes($option_value));
         switch ($option_key) {
             case 'site_logo':
                 if ('' == $clean_option_value || '0' == $clean_option_value) {
                     die(json_encode(array('success' => true, 'message' => __('No Logo uploaded', 'layerswp'))));
                 }
                 $get_attachment = wp_get_attachment_image_src($clean_option_value);
                 // Get an array of all registered image sizes.
                 $intermediate = get_intermediate_image_sizes();
                 $sizes = array();
                 // Have we got anything fun to work with?
                 if (is_array($intermediate) && !empty($intermediate)) {
                     foreach ($intermediate as $key => $size) {
                         // If the size isn't already in the $sizes array, add it.
                         if (!array_key_exists($size, $sizes)) {
                             $image_info = wp_get_attachment_image_src($get_attachment[0], $size);
                             $size_info['url'] = $image_info[0];
                             $size_info['width'] = $image_info[1];
                             $size_info['height'] = $image_info[2];
                             $sizes[$size] = $size_info;
                         }
                     }
                 }
                 if (!is_wp_error($get_attachment) && FALSE != $get_attachment) {
                     $site_logo_array = array('id' => $clean_option_value, 'sizes' => $sizes, 'url' => $get_attachment[0]);
                     update_option($option_key, $site_logo_array);
                     $return_message = array('success' => true, 'message' => __('Logo updated', 'layerswp'));
                 } else {
                     $return_message = array('success' => false, 'message' => __('There was an error when updating your logo.', 'layerswp'));
                 }
                 break;
             case 'site_color':
                 $header_color = $clean_option_value;
                 $accent_color = layers_adjust_brightness($clean_option_value, -50, TRUE);
                 $footer_color = '#2b2b2b';
                 set_theme_mod('layers-header-background-color', $header_color);
                 set_theme_mod('layers-site-accent-color', $accent_color);
                 set_theme_mod('layers-footer-background-color', $footer_color);
                 $return_message = array('success' => true, 'message' => __('Option updated', 'layerswp'));
                 break;
             default:
                 update_option($option_key, $clean_option_value);
                 $return_message = array('success' => true, 'message' => __('Option updated', 'layerswp'));
                 break;
         }
     }
     die(json_encode($return_message));
 }
Ejemplo n.º 2
0
 function layers_adjust_brightness($color, $steps = 50, $loop_back = false)
 {
     $mod_steps = max(-255, min(255, $steps));
     $mod_color = str_replace('#', '', $color);
     if (strlen($mod_color) == 3) {
         $mod_color = str_repeat(substr($mod_color, 0, 1), 2) . str_repeat(substr($mod_color, 1, 1), 2) . str_repeat(substr($mod_color, 2, 1), 2);
     }
     $mod_color_parts = str_split($mod_color, 2);
     $return = '#';
     foreach ($mod_color_parts as $mod_color) {
         $mod_color = hexdec($mod_color);
         $mod_color = max(0, min(255, $mod_color + $mod_steps));
         $return .= str_pad(dechex($mod_color), 2, '0', STR_PAD_LEFT);
     }
     if (('#000000' == $return || '#ffffff' == $return) && $loop_back) {
         $return = layers_adjust_brightness($color, -$steps);
     }
     return $return;
 }