コード例 #1
0
ファイル: WP_MTPC.php プロジェクト: humanmade/metapic
 private function setupOptionsPage()
 {
     add_action('admin_init', function () {
         register_setting('metapic_options', 'metapic_options', function ($input) {
             $options = get_option('metapic_options');
             $updateActions = array_flip(["submit", "login"]);
             $inArray = count(array_intersect_key($_POST, $updateActions)) > 0;
             $action = $inArray ? "update" : "deactivate";
             switch ($action) {
                 case "deactivate":
                     $this->deactivateAccount();
                     $this->setStatusMessage(__("Account deactivated", "metapic"));
                     break;
                 default:
                     $options = $this->updateOptions($options, $input);
                     break;
             }
             return $options;
         });
         register_setting('metapic_register_options', 'metapic_register_options', function ($input) {
             $user = $this->client->register($input["email_string"], $input["password_string"]);
             if ($user) {
                 $this->activateAccount($user["id"], $user["email"], $user["access_token"]["access_token"]);
                 $this->setStatusMessage(__("Account created", "metapic"));
                 wp_safe_redirect(admin_url('options-general.php?page=metapic_settings'));
                 exit;
             } else {
                 $this->setStatusMessage(__("Account already exists", "metapic"), "error");
             }
             return $input;
         });
     });
     add_action('admin_menu', function () {
         $isValidClient = get_site_option("mtpc_valid_client");
         if (!is_multisite() || is_multisite() && $isValidClient) {
             add_options_page('Metapic', 'Metapic', 'manage_options', 'metapic_settings', function () {
                 if (is_multisite()) {
                     $this->getTemplate("metapic-options-ms");
                 } else {
                     $this->getTemplate("metapic-options");
                 }
             });
             if (!is_multisite()) {
                 add_submenu_page(null, __('Register', 'metapic'), "Register", "manage_options", "metapic_register", function () {
                     $this->getTemplate("register");
                 });
             }
         }
     });
 }