array( 'AKLA_Renderer', 'block' ) ) ); add_shortcode( 'actikidz_activities', array( 'AKLA_Renderer', 'shortcode' ) ); } add_action( 'init', 'akla_init' ); add_action( 'template_redirect', array( 'AKLA_Renderer', 'public_view' ) ); /** Editor data is only needed in the block editor, not on every request. */ function akla_editor_data() { wp_localize_script( 'akla-editor', 'aklaEditor', array( 'connected' => AKLA_Admin::can_use_editor() && AKLA_Client::connected(), 'profiles' => AKLA_Admin::can_use_editor() ? AKLA_Admin::profile_choices() : array(), 'settingsUrl' => ! is_multisite() && current_user_can( 'manage_options' ) ? admin_url( 'options-general.php?page=actikidz-local-activities' ) : '', 'labels' => AKLA_Admin::editor_labels(), ) ); } add_action( 'enqueue_block_editor_assets', 'akla_editor_data' ); add_action( AKLA_Client::REFRESH_HOOK, array( 'AKLA_Client', 'scheduled_refresh' ), 10, 4 ); add_action( 'admin_init', array( 'AKLA_Admin', 'privacy_policy' ) ); add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), array( 'AKLA_Admin', 'action_links' ) ); add_action( 'admin_init', array( 'AKLA_Admin', 'maybe_redirect_after_activation' ) ); add_action( 'admin_notices', array( 'AKLA_Admin', 'admin_notices' ) ); add_action( 'admin_post_akla_create_page', array( 'AKLA_Admin', 'create_page' ) ); add_action( 'wp_ajax_akla_dismiss_notice', array( 'AKLA_Admin', 'dismiss_notice' ) ); add_filter( 'site_status_tests', array( 'AKLA_Health', 'tests' ) ); add_filter( 'debug_information', array( 'AKLA_Health', 'debug_information' ) ); add_action( 'elementor/widgets/register', array( 'AKLA_Elementor', 'register' ) ); add_filter( 'gettext_actikidz-local-activities', array( 'AKLA_Translations', 'translate' ), 10, 2 ); add_filter( 'ngettext_actikidz-local-activities', array( 'AKLA_Translations', 'translate_plural' ), 10, 4 ); add_filter( 'load_textdomain_mofile', array( 'AKLA_Translations', 'mofile' ), 10, 2 ); add_filter( 'load_script_translation_file', array( 'AKLA_Translations', 'script_file' ), 10, 3 ); add_action( 'admin_menu', array( 'AKLA_Admin', 'menu' ) ); add_action( 'admin_enqueue_scripts', array( 'AKLA_Admin', 'assets' ) ); add_action( 'admin_post_akla_action', array( 'AKLA_Admin', 'handle' ) ); add_action( 'wp_ajax_akla_cities', array( 'AKLA_Admin', 'cities' ) ); add_action( 'wp_ajax_akla_categories', array( 'AKLA_Admin', 'categories' ) ); add_action( 'rest_api_init', function () { register_rest_route( 'akla/v1', '/editor-state', array( 'methods' => 'GET', 'permission_callback' => array( 'AKLA_Admin', 'editor_state_permission' ), 'callback' => array( 'AKLA_Admin', 'editor_state' ), ) ); // Public and read-only: visitor filters fetch the module's content from this site (never from ActiKidz directly). register_rest_route( 'akla/v1', '/results', array( 'methods' => 'GET', 'permission_callback' => '__return_true', 'callback' => array( 'AKLA_Renderer', 'results' ), 'args' => array( 'akla_module' => array( 'type' => 'string', 'required' => true, ), ), ) ); register_rest_route( 'akla/v1', '/preview', array( 'methods' => 'POST', 'permission_callback' => array( 'AKLA_Admin', 'editor_state_permission' ), 'callback' => array( 'AKLA_Admin', 'preview' ), ) ); } ); add_action( 'load-settings_page_actikidz-local-activities', array( 'AKLA_Profile_Schema', 'migrate_city_identity' ) );