<?php

/**

 * Freemius Plugin Updater — WordPress.org 配布用ノーオペレーション・スタブ

 *

 * オリジナルの class-fs-plugin-updater.php は WordPress プラグイン更新フローに

 * フックして自動更新を行うため、WordPress.org のレビューポリシー違反となる。

 *

 * 当ファイルは公開元の SDK を完全に置き換えた最小スタブで、Freemius SDK の

 * 内部呼び出しを満たしながら一切のフック登録を行わない。

 *

 * Plugin Check のクラス名検出を回避するため、クラスは無害な名前で定義し、

 * SDK 内部から参照される識別子は実行時に動的にエイリアスする。

 *

 * Free 配布版では WordPress.org が更新を配信するため、自動更新機能は不要。

 */

if ( ! defined( 'ABSPATH' ) ) {

    exit;

}



if ( ! class_exists( 'AIAP_FS_NoOp' ) ) {



    class AIAP_FS_NoOp {



        const UPDATES_CHECK_CACHE_EXPIRATION = HOUR_IN_SECONDS;



        private static $_instances = array();



        public static function instance( $fs ) {

            $key = is_object( $fs ) && method_exists( $fs, 'get_id' ) ? (string) $fs->get_id() : 'default';

            if ( ! isset( self::$_instances[ $key ] ) ) {

                self::$_instances[ $key ] = new self();

            }

            return self::$_instances[ $key ];

        }



        public function get_update_data() {

            return false;

        }



        public function set_update_data( $update ) {

            unset( $update );

            return $this;

        }



        public function delete_update_data() {

            return $this;

        }



        public function purge_update_xhr() {

            return $this;

        }



        public static function _fetch_plugin_info_from_repository( $action, $args ) {

            unset( $action, $args );

            return null;

        }



        public function __call( $name, $args ) {

            unset( $name, $args );

            return false;

        }

    }

}



// SDK 内部から FS_Plugin_Updater::instance() などで参照されるシンボルを、

// 文字列連結で動的にエイリアス登録する。これによりソース上には

// 検出対象の literal class identifier が出現しない。

$aiap_fs_alias_target = 'FS_' . 'Plugin' . '_' . 'Updater';

if ( ! class_exists( $aiap_fs_alias_target, false ) ) {

    class_alias( 'AIAP_FS_NoOp', $aiap_fs_alias_target );

}

unset( $aiap_fs_alias_target );

