parse_url( get_site_url(), PHP_URL_HOST ), 'zerocert_kgc' => ZEROCERT_KGC_DEFAULT, 'zerocert_full_priv_key' => '', 'zerocert_user_secret' => '', 'zerocert_status' => 'not_configured', ); foreach ( $defaults as $key => $value ) { if ( get_option( $key ) === false ) { add_option( $key, $value ); } } zerocert_register_endpoint(); flush_rewrite_rules(); } function zerocert_deactivate() { flush_rewrite_rules(); } // ── Init ─────────────────────────────────────────────────────────────────── add_action( 'init', 'zerocert_register_endpoint' ); add_action( 'send_headers', 'zerocert_send_headers' ); add_action( 'template_redirect', 'zerocert_handle_endpoint' ); // ── Admin menu ───────────────────────────────────────────────────────────── add_action( 'admin_menu', 'zerocert_admin_menu' ); function zerocert_admin_menu() { add_options_page( '0Cert Settings', '0Cert', 'manage_options', '0cert', 'zerocert_settings_page' ); } // ── Settings link on plugins page ───────────────────────────────────────── add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), 'zerocert_plugin_action_links' ); function zerocert_plugin_action_links( $links ) { $settings_link = '' . __( 'Settings', '0cert' ) . ''; array_unshift( $links, $settings_link ); return $links; }