<?php

if ( ! class_exists( 'AMPHTML_Update' ) ) {

    class AMPHTML_Update {

        public $current_version;

        public function __construct() {
            $this->current_version = get_option( 'amphtml_version' );
            $this->update_template_options();
            $this->update_ad_fields();
            $this->update_7_2();
        }

        public function update_template_options() {
            $update_ver        = '6.6';
            $disabled_elements = array(
                'archive_title',
                'post_title',
                'post_content',
                'page_title',
                'page_content',
                'search_page_title',
                'archive_content_block',
                'blog_content_block',
                'search_page_content_block',
            );

            if ( $this->current_version < $update_ver ) {
                do_action( 'update_6_6' );
                foreach ( $disabled_elements as $element ) {
                    update_option( 'amphtml_' . $element, 1 );
                }
            }
        }

        public function update_ad_fields() {
            $update_ver = '7.0';

            if ( $this->current_version < $update_ver ) {

                // Update styles
                $styles = array( 'style', 'rtl-style' );
                foreach ( $styles as $filename ) {
                    $path = ABSPATH . "wp-content/plugins/wp-amp/css/$filename.min.css";
                    if ( is_file( $path ) ) {
                        unlink( $path );
                    }
                }

                // Remove unused options
                $wrong_fields = array(
                    'amphtml_ad_bottom_layout' => 'amphtml_ad_layout_bottom',
                    'amphtml_ad_top_layout'    => 'amphtml_ad_layout_top',
                    'amphtml_ad_bottom_height' => 'amphtml_ad_height_bottom',
                    'amphtml_ad_top_height'    => 'amphtml_ad_height_top',
                    'amphtml_ad_top_width'     => 'amphtml_ad_width_top',
                    'amphtml_ad_bottom_width'  => 'amphtml_ad_width_bottom'
                );
                foreach ( $wrong_fields as $wrong_field_name => $correct_field_name ) {
                    if ( $value = get_option( $wrong_field_name ) ) {
                        add_option( $correct_field_name, $value );
                        delete_option( $wrong_field_name );
                    }
                }
            }
        }

        public function update_7_2() {
            $update_ver = '7.2';

            if ( $this->current_version < $update_ver ) {

                // Update styles
                $styles = array( 'style', 'rtl-style' );
                foreach ( $styles as $filename ) {
                    $path = ABSPATH . "wp-content/plugins/wp-amp/css/$filename.min.css";
                    if ( is_file( $path ) ) {
                        unlink( $path );
                    }
                }
            }
        }

    }

}