Ejemplo n.º 1
0
 /**
  * Update the presentation's meta information.
  *
  * This includes:
  * - Presentation SEO Title
  * - Presentation SEO Description
  * - Presentation SEO Keywords
  * - Presentation Overview
  * - Default fill color
  * - Default background image
  */
 public function update_presentation()
 {
     $response = array();
     if (!isset($_POST['_nonce']) || !wp_verify_nonce($_POST['_nonce'], 'seoslides_update')) {
         die(-1);
     }
     $slideset_id = (int) $_POST['slideset'];
     $slideset = new SEOSlides_Slideset($slideset_id);
     // Update SEO
     $slideset->seo_title = sanitize_text_field($_POST['seo_title']);
     $slideset->seo_description = sanitize_text_field($_POST['seo_description']);
     $slideset->seo_keywords = sanitize_text_field($_POST['seo_keywords']);
     // Calculate H1 font size
     $header_size = floatval($_POST['header_size']);
     $header_size = $header_size / 2.4;
     $header_size .= 'em';
     // Update slide defaults
     $slideset->default_fill_color = sanitize_text_field($_POST['fill_color']);
     $slideset->default_bg_image = sanitize_text_field($_POST['bg_image']);
     $slideset->default_font = sanitize_text_field($_POST['default_font']);
     $slideset->default_size = sanitize_text_field($_POST['default_size']);
     $slideset->default_font_color = sanitize_text_field($_POST['default_color']);
     $slideset->default_header_font = sanitize_text_field($_POST['header_font']);
     $slideset->default_header_size = sanitize_text_field($header_size);
     $slideset->default_header_font_color = sanitize_text_field($_POST['header_color']);
     // Update presentation theme
     if (isset($_POST['seoslides_theme'])) {
         $theme = sanitize_text_field($_POST['seoslides_theme']);
         update_post_meta($slideset_id, '_slideset_theme', $theme);
     }
     // Persist changes
     $updated = $slideset->update();
     if (is_wp_error($updated)) {
         $response['success'] = false;
     } else {
         /** @var SEOSlides_Core $core */
         $core = SEOSlides_Module_Provider::get('SEOSlides Core');
         $themes = $core->presentation_theme($slideset_id);
         $response['success'] = $updated;
         $response['data'] = array('themes' => $themes);
     }
     wp_send_json($response);
 }