oont-contents/plugins/insert-headers-and-footers/includes/generator/class-wpcode-generator-hooks.php
2025-02-08 15:10:23 +01:00

1426 lines
38 KiB
PHP

<?php
/**
* Generate a snippet for a hook.
*
* @package WPCode
*/
/**
* WPCode_Generator_Hooks class.
*/
class WPCode_Generator_Hooks extends WPCode_Generator_Type {
/**
* The generator slug.
*
* @var string
*/
public $name = 'hooks';
/**
* The categories for this generator.
*
* @var string[]
*/
public $categories = array(
'core',
);
/**
* Set the translatable strings.
*
* @return void
*/
protected function set_strings() {
$this->title = __( 'Hooks', 'insert-headers-and-footers' );
$this->description = __( 'Generate a snippet for an action or a filter using any available hook.', 'insert-headers-and-footers' );
}
/**
* Return a list of hooks for suggestions in the hook autocomplete.
*
* @return array
*/
protected function get_all_hooks_options() {
return array(
'link_category',
'link_title',
'signup_another_blog_init',
'signup_create_blog_meta',
'add_signup_meta',
'signup_user_init',
'signup_blog_init',
'signup_get_available_languages',
'wpmu_active_signup',
'wp_http_cookie_value',
'customize_panel_active',
'register_post_type_args',
'http_origin',
'allowed_http_origins',
'allowed_http_origin',
'wp_mail',
'wp_mail_from',
'wp_mail_from_name',
'wp_mail_content_type',
'wp_mail_charset',
'authenticate',
'auth_cookie',
'auth_cookie_expiration',
'secure_auth_cookie',
'secure_logged_in_cookie',
'secure_auth_redirect',
'auth_redirect_scheme',
'wp_redirect',
'wp_redirect_status',
'wp_safe_redirect_fallback',
'allowed_redirect_hosts',
'comment_notification_recipients',
'comment_notification_notify_author',
'comment_notification_text',
'comment_notification_subject',
'comment_notification_headers',
'notify_moderator',
'comment_moderation_recipients',
'comment_moderation_text',
'comment_moderation_subject',
'comment_moderation_headers',
'wp_password_change_notification_email',
'wp_new_user_notification_email_admin',
'wp_new_user_notification_email',
'nonce_life',
'nonce_user_logged_out',
'nonce_user_logged_out',
'salt',
'salt',
'check_password',
'check_password',
'random_password',
'pre_get_avatar',
'style_loader_tag',
'print_styles_array',
'style_loader_src',
'graceful_fail',
'wp_is_mobile',
'wp_kses_allowed_html',
'pre_kses',
'wp_editor_settings',
'the_editor_content',
'quicktags_settings',
'teeny_mce_plugins',
'mce_external_plugins',
'tiny_mce_plugins',
'mce_external_languages',
'mce_css',
'teeny_mce_buttons',
'mce_buttons',
'mce_buttons_2',
'mce_buttons_3',
'mce_buttons_4',
'teeny_mce_before_init',
'tiny_mce_before_init',
'wp_mce_translation',
'wp_link_query_args',
'wp_link_query',
'use_curl_transport',
'old_slug_redirect_post_id',
'old_slug_redirect_url',
'pre_do_shortcode_tag',
'do_shortcode_tag',
'strip_shortcodes_tagnames',
'wp_http_ixr_client_headers',
'session_token_manager',
'attach_session_information',
'session_token_manager',
'get_attached_file',
'update_attached_file',
'_wp_relative_upload_path',
'get_post_status',
'wp_count_attachments',
'post_mime_types',
'pre_delete_post',
'pre_trash_post',
'pre_untrash_post',
'wp_insert_post_parent',
'wp_insert_attachment_data',
'wp_insert_post_data',
'wp_unique_post_slug',
'add_ping',
'get_enclosed',
'get_pung',
'get_to_ping',
'get_page_uri',
'wp_get_attachment_metadata',
'wp_get_attachment_url',
'wp_get_attachment_caption',
'wp_get_attachment_thumb_file',
'wp_get_attachment_thumb_url',
'icon_dir',
'icon_dir_uri',
'icon_dirs',
'wp_mime_type_icon',
'get_lastpostdate',
'pre_get_lastpostmodified',
'get_lastpostmodified',
'post_rewrite_rules',
'date_rewrite_rules',
'root_rewrite_rules',
'comments_rewrite_rules',
'search_rewrite_rules',
'author_rewrite_rules',
'page_rewrite_rules',
'tag_rewrite_rules',
'rewrite_rules_array',
'mod_rewrite_rules',
'rewrite_rules',
'iis7_url_rewrite_rules',
'customize_section_active',
'oembed_providers',
'pre_oembed_result',
'oembed_result',
'oembed_remote_get_args',
'oembed_fetch_url',
'oembed_dataparse',
'rest_url_prefix',
'rest_url',
'wp_rest_server_class',
'rest_avatar_sizes',
'protected_title_format',
'private_title_format',
'the_title',
'the_guid',
'get_the_guid',
'the_content',
'the_content_more_link',
'the_excerpt',
'get_the_excerpt',
'post_class',
'body_class',
'post_password_required',
'wp_link_pages_args',
'wp_link_pages_link',
'wp_link_pages',
'the_meta_key',
'wp_dropdown_pages',
'wp_list_pages_excludes',
'wp_list_pages',
'wp_page_menu_args',
'wp_page_menu',
'wp_get_attachment_link',
'prepend_attachment',
'the_password_form',
'wp_post_revision_title_expanded',
'customize_loaded_components',
'customize_changeset_branching',
'customize_save_response',
'customize_changeset_save_data',
'customize_dynamic_setting_args',
'customize_dynamic_setting_class',
'customize_allowed_urls',
'customize_refresh_nonces',
'customize_previewable_devices',
'customize_load_themes',
'user_has_cap',
'get_date_sql',
'core_version_check_locale',
'core_version_check_query_args',
'plugins_update_check_locales',
'themes_update_check_locales',
'wp_get_update_data',
'link_category',
'wp_list_bookmarks',
'script_loader_src',
'script_loader_tag',
'print_scripts_array',
'wp_admin_bar_class',
'show_admin_bar',
'can_add_user_to_blog',
'is_email_address_unsafe',
'wpmu_validate_user_signup',
'minimum_site_name_length',
'newblogname',
'wpmu_validate_blog_signup',
'signup_site_meta',
'signup_user_meta',
'newblog_notify_siteadmin',
'newuser_notify_siteadmin',
'domain_exists',
'update_welcome_email',
'update_welcome_subject',
'update_welcome_user_email',
'update_welcome_user_subject',
'pre_get_space_used',
'get_space_allowed',
'wp_is_large_network',
'subdirectory_reserved_names',
'new_network_admin_email_content',
'send_network_admin_email_change_email',
'network_admin_email_change_email',
'hook',
'example_filter',
'wpdocs_filter',
'oembed_default_width',
'oembed_request_post_id',
'rest_oembed_ttl',
'wp_feed_cache_transient_lifetime',
'get_bloginfo_rss',
'bloginfo_rss',
'default_feed',
'get_wp_title_rss',
'wp_title_rss',
'the_title_rss',
'the_content_feed',
'the_excerpt_rss',
'the_permalink_rss',
'comments_link_feed',
'comment_link',
'comment_author_rss',
'comment_text_rss',
'the_category_rss',
'rss_enclosure',
'atom_enclosure',
'self_link',
'feed_content_type',
'wp_doing_ajax',
'wp_doing_cron',
'file_mod_allowed',
'the_sites',
'site_search_columns',
'sites_clauses',
'found_sites_query',
'the_permalink',
'user_trailingslashit',
'pre_post_link',
'post_link_category',
'post_link',
'post_type_link',
'page_link',
'_get_page_link',
'attachment_link',
'year_link',
'month_link',
'day_link',
'the_feed_link',
'feed_link',
'post_comments_feed_link',
'post_comments_feed_link_html',
'author_feed_link',
'category_feed_link',
'tag_feed_link',
'taxonomy_feed_link',
'get_edit_tag_link',
'edit_tag_link',
'get_edit_term_link',
'edit_term_link',
'search_link',
'search_feed_link',
'post_type_archive_feed_link',
'preview_post_link',
'get_edit_post_link',
'edit_post_link',
'get_delete_post_link',
'get_edit_comment_link',
'edit_comment_link',
'get_edit_bookmark_link',
'edit_bookmark_link',
'get_edit_user_link',
'get_pagenum_link',
'next_posts_link_attributes',
'previous_posts_link_attributes',
'navigation_markup_template',
'get_comments_pagenum_link',
'next_comments_link_attributes',
'previous_comments_link_attributes',
'home_url',
'site_url',
'admin_url',
'includes_url',
'content_url',
'plugins_url',
'network_site_url',
'network_home_url',
'network_admin_url',
'user_admin_url',
'self_admin_url',
'set_url_scheme',
'user_dashboard_url',
'edit_profile_url',
'get_canonical_url',
'pre_get_shortlink',
'get_shortlink',
'the_shortlink',
'pre_get_avatar_data',
'get_avatar_comment_types',
'get_avatar_url',
'theme_file_uri',
'parent_theme_file_uri',
'theme_file_path',
'parent_theme_file_path',
'privacy_policy_url',
'the_privacy_policy_link',
'date_i18n',
'number_format_i18n',
'enclosure_links',
'removable_query_args',
'status_header',
'nocache_headers',
'robots_txt',
'upload_dir',
'wp_unique_filename',
'wp_upload_bits',
'wp_check_filetype_and_ext',
'upload_mimes',
'wp_die_ajax_handler',
'wp_die_xmlrpc_handler',
'wp_die_handler',
'smilies',
'iis7_supports_permalinks',
'get_main_network_id',
'global_terms_enabled',
'kses_allowed_protocols',
'wp_checkdate',
'wp_auth_check_same_domain',
'wp_delete_file',
'admin_memory_limit',
'image_memory_limit',
'send_site_admin_email_change_email',
'site_admin_email_change_email',
'wp_privacy_anonymize_data',
'wp_privacy_exports_dir',
'wp_privacy_exports_url',
'wp_privacy_export_expiration',
'the_title',
'the_title',
'link_category',
'the_content_rss',
'icon_dir',
'attachment_icon',
'attachment_innerHTML',
'the_title',
'index_rel_link',
'the_title',
'parent_post_rel_link',
'richedit_pre',
'htmledit_pre',
'shortcut_link',
'rest_authentication_errors',
'rest_send_nocache_headers',
'rest_jsonp_enabled',
'rest_post_dispatch',
'rest_pre_serve_request',
'rest_pre_echo_response',
'rest_envelope_response',
'rest_endpoints',
'rest_pre_dispatch',
'rest_request_before_callbacks',
'rest_dispatch_request',
'rest_request_after_callbacks',
'rest_index',
'rest_namespace_index',
'rest_endpoints_description',
'rest_route_data',
'rest_request_parameter_order',
'rest_request_from_url',
'rest_comment_query',
'rest_allow_anonymous_comments',
'rest_pre_insert_comment',
'rest_comment_trashable',
'rest_prepare_comment',
'rest_preprocess_comment',
'rest_comment_collection_params',
'rest_prepare_attachment',
'rest_prepare_revision',
'rest_user_query',
'rest_prepare_user',
'rest_pre_insert_user',
'rest_user_collection_params',
'rest_pre_get_setting',
'rest_pre_update_setting',
'rest_prepare_status',
'rest_prepare_taxonomy',
'rest_prepare_post_type',
'rest_response_link_curies',
'secure_signon_cookie',
'wp_authenticate_user',
'wp_authenticate_user',
'check_is_user_spammed',
'get_usernumposts',
'pre_get_blogs_of_user',
'get_blogs_of_user',
'wp_dropdown_users_args',
'wp_dropdown_users',
'username_exists',
'validate_username',
'pre_user_login',
'illegal_user_logins',
'pre_user_nicename',
'pre_user_url',
'pre_user_email',
'pre_user_nickname',
'pre_user_first_name',
'pre_user_last_name',
'pre_user_display_name',
'pre_user_description',
'wp_pre_insert_user_data',
'insert_user_meta',
'send_password_change_email',
'send_email_change_email',
'password_change_email',
'email_change_email',
'user_contactmethods',
'password_hint',
'allow_password_reset',
'password_reset_expiration',
'password_reset_key_expired',
'user_registration_email',
'registration_errors',
'determine_current_user',
'new_user_email_content',
'user_request_confirmed_email_to',
'user_confirmed_action_email_content',
'user_request_confirmed_email_subject',
'user_erasure_fulfillment_email_to',
'user_erasure_complete_email_subject',
'user_confirmed_action_email_content',
'user_request_action_confirmed_message',
'user_request_action_description',
'user_request_action_email_content',
'user_request_action_email_subject',
'user_request_key_expiration',
'get_terms_defaults',
'get_terms_args',
'list_terms_exclusions',
'get_terms_fields',
'terms_clauses',
'get_terms_orderby',
'list_pages',
'register_taxonomy_args',
'get_categories_taxonomy',
'get_tags',
'the_comments',
'comments_clauses',
'found_comments_query',
'get_the_categories',
'the_category_list',
'the_category',
'list_cats',
'list_cats',
'wp_dropdown_cats',
'wp_list_categories',
'wp_tag_cloud',
'tag_cloud_sort',
'wp_generate_tag_cloud_data',
'wp_generate_tag_cloud',
'get_the_tags',
'the_tags',
'get_the_terms',
'the_terms',
'pre_get_main_site_id',
'network_by_path_segments_count',
'pre_get_network_by_path',
'get_site',
'get_network',
'pre_http_send_through_proxy',
'customize_partial_render',
'customize_dynamic_partial_args',
'customize_dynamic_partial_class',
'customize_render_partials_response',
'wp_query_search_exclusion_prefix',
'wp_search_stopwords',
'posts_search',
'posts_search_orderby',
'posts_where',
'posts_join',
'comment_feed_join',
'comment_feed_where',
'comment_feed_groupby',
'comment_feed_orderby',
'comment_feed_limits',
'posts_where_paged',
'posts_groupby',
'posts_join_paged',
'posts_orderby',
'posts_distinct',
'post_limits',
'posts_fields',
'posts_clauses',
'posts_where_request',
'posts_groupby_request',
'posts_join_request',
'posts_orderby_request',
'posts_distinct_request',
'posts_fields_request',
'post_limits_request',
'posts_clauses_request',
'posts_request',
'posts_pre_query',
'split_the_query',
'posts_request_ids',
'posts_results',
'comment_feed_orderby',
'comment_feed_limits',
'the_preview',
'the_posts',
'found_posts_query',
'found_posts',
'content_pagination',
'embed_handler_html',
'oembed_ttl',
'embed_oembed_html',
'embed_oembed_discover',
'embed_maybe_make_link',
'is_protected_meta',
'register_meta_args',
'customizer_widgets_section_args',
'is_wide_widget_in_customizer',
'widget_customizer_setting_args',
'search_form_format',
'get_search_form',
'loginout',
'loginout',
'logout_url',
'login_url',
'register_url',
'login_form_defaults',
'login_form_top',
'login_form_middle',
'login_form_bottom',
'lostpassword_url',
'register',
'bloginfo_url',
'bloginfo',
'get_site_icon_url',
'get_custom_logo',
'pre_get_document_title',
'document_title_separator',
'document_title_parts',
'wp_title_parts',
'wp_title',
'single_post_title',
'post_type_archive_title',
'single_cat_title',
'single_tag_title',
'single_term_title',
'get_the_archive_title',
'get_the_archive_description',
'get_the_post_type_description',
'get_archives_link',
'getarchives_where',
'getarchives_join',
'get_calendar',
'get_calendar',
'the_date',
'get_the_date',
'the_modified_date',
'get_the_modified_date',
'the_time',
'get_the_time',
'get_post_time',
'the_modified_time',
'get_the_modified_time',
'get_post_modified_time',
'the_weekday',
'the_weekday_date',
'site_icon_meta_tags',
'wp_resource_hints',
'user_can_richedit',
'wp_default_editor',
'wp_code_editor_settings',
'get_search_query',
'the_search_query',
'language_attributes',
'paginate_links',
'wp_admin_css_uri',
'wp_admin_css',
'wp_generator_type',
'the_generator',
'redirect_canonical',
'role_has_cap',
'theme_templates',
'theme_scandir_exclusions',
'network_allowed_themes',
'allowed_themes',
'site_allowed_themes',
'site_allowed_themes',
'wp_http_accept_encoding',
'',
'incompatible_sql_modes',
'query',
'pre_get_table_charset',
'pre_get_col_charset',
'stylesheet',
'stylesheet_directory',
'stylesheet_directory_uri',
'stylesheet_uri',
'locale_stylesheet_uri',
'template',
'template_directory',
'template_directory_uri',
'theme_root',
'theme_root_uri',
'get_header_image_tag',
'get_header_video_url',
'header_video_settings',
'is_header_video_active',
'wp_get_custom_css',
'update_custom_css_data',
'editor_stylesheets',
'get_theme_starter_content',
'rss_update_period',
'rss_update_frequency',
'pre_cache_alloptions',
'alloptions',
'pre_update_option',
'register_setting_args',
'post_thumbnail_size',
'post_thumbnail_html',
'the_post_thumbnail_caption',
'category_description',
'category_css_class',
'map_meta_cap',
'editor_max_image_size',
'get_image_tag_class',
'get_image_tag',
'wp_constrain_dimensions',
'image_resize_dimensions',
'image_get_intermediate_size',
'intermediate_image_sizes',
'wp_get_attachment_image_src',
'wp_get_attachment_image_attributes',
'wp_calculate_image_srcset_meta',
'max_srcset_image_width',
'wp_calculate_image_srcset',
'wp_calculate_image_sizes',
'img_caption_shortcode',
'img_caption_shortcode_width',
'post_gallery',
'gallery_style',
'post_playlist',
'wp_mediaelement_fallback',
'wp_audio_extensions',
'wp_get_attachment_id3_keys',
'wp_audio_shortcode_override',
'wp_audio_shortcode_library',
'wp_audio_shortcode_class',
'wp_audio_shortcode',
'wp_video_extensions',
'wp_video_shortcode_override',
'wp_video_shortcode_library',
'wp_video_shortcode_class',
'wp_video_shortcode',
'upload_size_limit',
'wp_image_editors',
'plupload_default_settings',
'plupload_default_params',
'wp_prepare_attachment_for_js',
'media_library_show_audio_playlist',
'media_library_show_video_playlist',
'media_library_months_with_files',
'media_view_settings',
'media_view_strings',
'get_attached_media_args',
'get_attached_media',
'media_embedded_in_content_allowed_types',
'get_post_galleries',
'get_post_gallery',
'attachment_url_to_postid',
'site_details',
'page_css_class',
'page_menu_link_attributes',
'xmlrpc_methods',
'pre_option_enable_xmlrpc',
'option_enable_xmlrpc',
'xmlrpc_enabled',
'xmlrpc_login_error',
'xmlrpc_blog_options',
'xmlrpc_prepare_taxonomy',
'xmlrpc_prepare_term',
'xmlrpc_prepare_post',
'xmlrpc_prepare_post_type',
'xmlrpc_prepare_media_item',
'xmlrpc_prepare_page',
'xmlrpc_prepare_comment',
'xmlrpc_prepare_user',
'xmlrpc_wp_insert_post_data',
'xmlrpc_default_post_fields',
'xmlrpc_default_taxonomy_fields',
'xmlrpc_default_user_fields',
'xmlrpc_allow_anonymous_comments',
'xmlrpc_default_posttype_fields',
'xmlrpc_default_revision_fields',
'xmlrpc_text_filters',
'pingback_ping_source_uri',
'pre_remote_source',
'xmlrpc_pingback_error',
'url_to_postid',
'wp_editor_set_quality',
'jpeg_quality',
'image_editor_default_mime_type',
'post_format_rewrite_base',
'get_term',
'get_terms',
'pre_category_nicename',
'wp_get_object_terms_args',
'get_object_terms',
'wp_get_object_terms',
'pre_insert_term',
'wp_insert_term_data',
'term_id_filter',
'wp_unique_term_slug',
'wp_update_term_parent',
'wp_update_term_data',
'term_id_filter',
'pre_term_link',
'tag_link',
'category_link',
'term_link',
'https_local_ssl_verify',
'https_ssl_verify',
'use_streams_transport',
'embed_defaults',
'wp_audio_embed_handler',
'wp_video_embed_handler',
'wp_embed_handler_youtube',
'wp_embed_handler_audio',
'wp_embed_handler_video',
'oembed_discovery_links',
'post_embed_url',
'oembed_endpoint_url',
'embed_html',
'oembed_response_data',
'the_excerpt_embed',
'embed_site_title_html',
'xmlrpc_element_limit',
'xmlrpc_chunk_parsing_size',
'embed_thumbnail_id',
'embed_thumbnail_image_size',
'embed_thumbnail_image_shape',
'http_headers_useragent',
'http_request_args',
'pre_http_request',
'https_ssl_verify',
'http_response',
'http_api_transports',
'http_response',
'block_local_requests',
'schedule_event',
'schedule_event',
'cron_schedules',
'run_wptexturize',
'no_texturize_tags',
'no_texturize_shortcodes',
'sanitize_file_name_chars',
'sanitize_file_name',
'sanitize_user',
'sanitize_key',
'sanitize_title',
'sanitize_html_class',
'format_to_edit',
'smilies_src',
'is_email',
'sanitize_email',
'human_time_diff',
'excerpt_length',
'excerpt_more',
'wp_trim_excerpt',
'wp_trim_words',
'pre_ent2ncr',
'format_for_editor',
'clean_url',
'js_escape',
'esc_html',
'attribute_escape',
'esc_textarea',
'tag_escape',
'wp_parse_str',
'wp_sprintf',
'sanitize_text_field',
'sanitize_textarea_field',
'sanitize_mime_type',
'sanitize_trackback_urls',
'wp_spaces_regexp',
'process_text_diff_html',
'user_search_columns',
'found_users_query',
'wp_get_nav_menu_object',
'has_nav_menu',
'wp_get_nav_menu_name',
'wp_get_nav_menus',
'wp_get_nav_menu_items',
'nav_menu_attr_title',
'nav_menu_description',
'wp_setup_nav_menu_item',
'_wp_post_revision_fields',
'wp_save_post_revision_post_has_changed',
'wp_revisions_to_keep',
'ms_site_check',
'site_by_path_segments_count',
'pre_get_site_by_path',
'the_author',
'the_modified_author',
'the_author_posts_link',
'author_link',
'is_multi_author',
'get_comment_author',
'comment_author',
'get_comment_author_email',
'author_email',
'comment_email',
'get_comment_author_link',
'get_comment_author_IP',
'get_comment_author_url',
'comment_url',
'get_comment_author_url_link',
'comment_class',
'get_comment_date',
'comment_excerpt_length',
'get_comment_excerpt',
'comment_excerpt',
'get_comment_ID',
'get_comment_link',
'get_comments_link',
'get_comments_number',
'comments_number',
'get_comment_text',
'comment_text',
'get_comment_time',
'get_comment_type',
'trackback_url',
'comments_open',
'pings_open',
'comments_template_query_args',
'comments_array',
'comments_template',
'respond_link',
'comments_popup_link_attributes',
'comment_reply_link_args',
'comment_reply_link',
'post_comments_link',
'cancel_comment_reply_link',
'comment_id_fields',
'wp_list_comments_args',
'comment_form_default_fields',
'comment_form_defaults',
'comment_form_logged_in',
'comment_form_fields',
'comment_form_field_comment',
'comment_form_submit_button',
'comment_form_submit_field',
'get_bookmarks',
'dynamic_sidebar_params',
'dynamic_sidebar_has_widgets',
'is_active_sidebar',
'sidebars_widgets',
'customize_control_active',
'locale',
'locale',
'gettext',
'gettext_with_context',
'ngettext',
'ngettext_with_context',
'override_load_textdomain',
'load_textdomain_mofile',
'override_unload_textdomain',
'plugin_locale',
'plugin_locale',
'theme_locale',
'get_available_languages',
'the_networks',
'networks_clauses',
'found_networks_query',
'query_vars',
'request',
'wp_headers',
'query_string',
'widget_categories_dropdown_args',
'widget_categories_args',
'widget_title',
'widget_links_args',
'widget_nav_menu_args',
'widget_text',
'widget_text_content',
'widget_custom_html_content',
'comment_max_links_url',
'get_comment',
'get_default_comment_status',
'comment_cookie_lifetime',
'pre_comment_author_name',
'pre_comment_author_email',
'pre_comment_author_url',
'duplicate_comment_id',
'pre_comment_approved',
'comment_flood_filter',
'get_page_of_comment',
'wp_get_comment_fields_max_lengths',
'wp_count_comments',
'wp_get_current_commenter',
'pre_user_id',
'pre_comment_user_agent',
'pre_comment_content',
'pre_comment_user_ip',
'preprocess_comment',
'notify_post_author',
'comment_save_pre',
'wp_update_comment_data',
'pre_wp_update_comment_count_now',
'pingback_useragent',
'close_comments_for_post_types',
'close_comments_for_post_types',
'wp_anonymize_comment',
'customize_nav_menu_available_items',
'customize_nav_menu_searched_items',
'customize_nav_menu_available_item_types',
'wp_nav_menu_args',
'pre_wp_nav_menu',
'wp_nav_menu_container_allowedtags',
'wp_nav_menu_objects',
'wp_nav_menu_items',
'wp_nav_menu',
'nav_menu_submenu_css_class',
'nav_menu_item_args',
'nav_menu_css_class',
'nav_menu_item_id',
'nav_menu_link_attributes',
'nav_menu_item_title',
'walker_nav_menu_start_el',
'get_meta_sql',
'meta_query_find_compatible_table_alias',
'widget_display_callback',
'widget_update_callback',
'widget_form_callback',
'wp_xmlrpc_server_class',
'comment_post_redirect',
'edit_comment_misc_actions',
'myblogs_options',
'myblogs_blog_actions',
'wp_nav_locations_listed_per_menu',
'redirect_term_location',
'taxonomy_parent_dropdown_args',
'whitelist_options',
'redirect_user_admin_request',
'delete_site_email_content',
'admin_title',
'admin_body_class',
'parent_file',
'submenu_file',
'export_args',
'bulk_post_updated_messages',
'user_profile_picture_description',
'post_updated_messages',
'enter_title_here',
'tables_to_repair',
'thread_comments_depth_max',
'avatar_defaults',
'default_avatar_select',
'redirect_network_admin_request',
'mu_menu_items',
'media_upload_default_type',
'media_upload_default_tab',
'pre_user_login',
'date_formats',
'time_formats',
'admin_footer_text',
'update_footer',
'install_themes_tabs',
'available_permalink_structure_tags',
'editable_slug',
'wp_header_image_attachment_metadata',
'theme_action_links',
'theme_row_meta',
'heartbeat_nopriv_received',
'heartbeat_nopriv_send',
'term_search_min_chars',
'wp_check_post_lock_window',
'ajax_query_attachments_args',
'wp_refresh_nonces',
'heartbeat_received',
'heartbeat_send',
'wp_ajax_cropped_attachment_metadata',
'wp_ajax_cropped_attachment_id',
'wp_privacy_personal_data_exporters',
'wp_privacy_personal_data_export_page',
'wp_privacy_personal_data_erasers',
'wp_privacy_personal_data_erasure_page',
'intermediate_image_sizes_advanced',
'attachment_thumbnail_args',
'fallback_intermediate_image_sizes',
'wp_generate_attachment_metadata',
'wp_read_image_metadata',
'file_is_displayable_image',
'load_image_to_edit',
'load_image_to_edit_filesystempath',
'load_image_to_edit_attachmenturl',
'load_image_to_edit_path',
'wpmu_users_columns',
'ms_user_list_site_actions',
'ms_user_row_actions',
'default_content',
'default_title',
'default_excerpt',
'edit_posts_per_page',
'upload_per_page',
'get_sample_permalink',
'get_sample_permalink_html',
'admin_post_thumbnail_size',
'admin_post_thumbnail_html',
'override_post_lock',
'redirect_post_location',
'default_hidden_columns',
'hidden_columns',
'default_hidden_meta_boxes',
'hidden_meta_boxes',
'months_dropdown_results',
'list_table_primary_column',
'update_right_now_text',
'install_themes_nonmenu_tabs',
'theme_install_actions',
'plugin_files_exclusions',
'translations_api',
'translations_api_result',
'add_menu_classes',
'menu_order',
'manage_pages_columns',
'manage_posts_columns',
'post_date_column_status',
'post_date_column_time',
'page_row_actions',
'post_row_actions',
'quick_edit_dropdown_pages_args',
'all_plugins',
'show_network_active_plugins',
'network_admin_plugin_action_links',
'plugin_action_links',
'plugin_row_meta',
'install_plugin_complete_actions',
'wp_terms_checklist_args',
'wp_comment_reply',
'postmeta_form_keys',
'postmeta_form_limit',
'import_upload_size_limit',
'display_post_states',
'display_media_states',
'export_wp_filename',
'the_content_export',
'the_excerpt_export',
'update_bulk_plugins_complete_actions',
'get_editable_authors',
'get_others_drafts',
'wp_create_thumbnail',
'site_icon_attachment_metadata',
'site_icon_image_sizes',
'site_icon_image_sizes',
'update_feedback',
'editable_roles',
'get_users_drafts',
'post_types_to_delete_with_user',
'manage_taxonomies_for_attachment_columns',
'manage_media_columns',
'media_row_actions',
'update_bulk_theme_complete_actions',
'install_theme_complete_actions',
'update_theme_complete_actions',
'install_plugins_tabs',
'install_plugins_nonmenu_tabs',
'plugin_install_action_links',
'post_edit_category_parent_dropdown_args',
'page_attributes_dropdown_pages_args',
'default_page_template_title',
'users_list_table_query_args',
'user_row_actions',
'manage_users_custom_column',
'get_role_list',
'comments_per_page',
'comment_status_links',
'term_updated_messages',
'contextual_help_list',
'contextual_help',
'default_contextual_help',
'screen_layout_columns',
'screen_settings',
'screen_options_show_screen',
'screen_options_show_submit',
'view_mode_post_types',
'edit_tags_per_page',
'tagsperpage',
'edit_categories_per_page',
'term_name',
'tag_row_actions',
'automatic_updater_disabled',
'automatic_updates_is_vcs_checkout',
'auto_core_update_email',
'automatic_updates_debug_email',
'async_update_translation',
'plugins_api_args',
'plugins_api',
'plugins_api_result',
'upgrader_pre_download',
'upgrader_pre_install',
'upgrader_source_selection',
'upgrader_clear_destination',
'upgrader_post_install',
'upgrader_package_options',
'themes_api_args',
'themes_api',
'themes_api_result',
'pre_prepare_themes_for_js',
'wp_prepare_themes_for_js',
'dbdelta_queries',
'dbdelta_create_queries',
'dbdelta_insert_queries',
'wp_should_upgrade_global_tables',
'ms_sites_list_table_query_args',
'wpmu_blogs_columns',
'manage_sites_action_links',
'wp_network_dashboard_widgets',
'wp_user_dashboard_widgets',
'wp_dashboard_widgets',
'dashboard_glance_items',
'privacy_on_link_title',
'privacy_on_link_text',
'dashboard_recent_drafts_query_args',
'comment_row_actions',
'dashboard_recent_posts_query_args',
'browse-happy-notice',
'try_gutenberg_learn_more_link',
'allow_minor_auto_core_updates',
'allow_major_auto_core_updates',
'media_upload_tabs',
'image_send_to_editor',
'image_add_caption_text',
'image_add_caption_shortcode',
'media_buttons_context',
'attachment_fields_to_save',
'media_send_to_editor',
'image_send_to_editor_url',
'attachment_fields_to_edit',
'get_media_item_args',
'media_meta',
'get_media_item_args',
'attachment_fields_to_edit',
'upload_post_params',
'plupload_init',
'media_upload_form_url',
'media_upload_form_url',
'type_url_form_media',
'media_upload_form_url',
'media_upload_form_url',
'media_upload_mime_type_links',
'media_meta',
'media_submitbox_misc_sections',
'audio_submitbox_misc_sections',
'wp_read_video_metadata',
'got_rewrite',
'got_url_rewrite',
'documentation_ignore_functions',
'set-screen-option',
'admin_referrer_policy',
'new_admin_email_content',
'wp_get_default_privacy_policy_content',
'terms_to_edit',
'populate_network_meta',
'update_plugin_complete_actions',
'update_translations_complete_actions',
'nav_menu_meta_box_object',
'wp_edit_nav_menu_walker',
'revision_text_diff_options',
'wp_get_revision_ui_diff',
'wp_prepare_revision_for_js',
'wpmu_drop_tables',
'wpmu_delete_blog_upload_dir',
'lang_codes',
'mu_dropdown_languages',
'can_edit_network',
'comment_edit_pre',
'editable_extensions',
'wp_theme_editor_filetypes',
'pre_move_uploaded_file',
'filesystem_method_file',
'filesystem_method',
'request_filesystem_credentials',
'fs_ftp_connection_types',
'wp_privacy_personal_data_email_content',
'image_editor_save_pre',
'image_save_pre',
'wp_save_image_editor_file',
'wp_save_image_file',
'wp_image_editor_before_change',
'image_edit_before_change',
'comment_edit_redirect',
'shake_error_codes',
'login_title',
'login_headerurl',
'login_headertitle',
'login_body_class',
'login_message',
'login_errors',
'login_messages',
'retrieve_password_title',
'retrieve_password_message',
'login_link_separator',
'post_password_expires',
'logout_redirect',
'lostpassword_redirect',
'wp_signup_location',
'registration_redirect',
'login_redirect',
'wp_login_errors',
'wp_mail_original_content',
'phone_content',
);
}
/**
* Load the generator tabs.
*
* @return void
*/
protected function load_tabs() {
$this->tabs = array(
'info' => array(
'label' => __( 'Info', 'insert-headers-and-footers' ),
'columns' => array(
// Column 1.
array(
// Column 1 fields.
array(
'type' => 'description',
'label' => __( 'Overview', 'insert-headers-and-footers' ),
'content' => sprintf(
// Translators: Placeholders add links to the wordpress.org references.
__( 'Using this generator you can safely add custom %1$shooks%2$s using either %3$sadd_action%4$s or %5$sadd_filter%6$s.', 'insert-headers-and-footers' ),
'<a href="https://developer.wordpress.org/reference/hooks/" target="_blank">',
'</a>',
'<a href="https://developer.wordpress.org/reference/functions/add_action/" target="_blank">',
'</a>',
'<a href="https://developer.wordpress.org/reference/functions/add_filter/" target="_blank">',
'</a>'
),
),
),
// Column 2.
array(
// Column 2 fields.
array(
'type' => 'list',
'label' => __( 'Usage', 'insert-headers-and-footers' ),
'content' => array(
__( 'Fill in the forms using the menu on the left.', 'insert-headers-and-footers' ),
__( 'Click the "Update Code" button.', 'insert-headers-and-footers' ),
__( 'Click on "Use Snippet" to create a new snippet with the generated code.', 'insert-headers-and-footers' ),
__( 'Activate and save the snippet and you\'re ready to go', 'insert-headers-and-footers' ),
),
),
),
// Column 3.
array(
// Column 3 fields.
array(
'type' => 'description',
'label' => __( 'Examples', 'insert-headers-and-footers' ),
'content' => __( 'You can use this to quickly get started with adding an action or filter.', 'insert-headers-and-footers' ),
),
),
),
),
'hook' => array(
'label' => __( 'Hook Details', 'insert-headers-and-footers' ),
'columns' => array(
// Column 1.
array(
array(
'type' => 'select',
'label' => __( 'Hook type', 'insert-headers-and-footers' ),
'description' => __( 'Can be either an action or a filter', 'insert-headers-and-footers' ),
'id' => 'hook_type',
'default' => 'add_action',
'options' => array(
'add_action' => __( 'Action', 'insert-headers-and-footers' ),
'add_filter' => __( 'Filter', 'insert-headers-and-footers' ),
),
),
array(
'type' => 'text',
'label' => __( 'Hook name', 'insert-headers-and-footers' ),
'description' => __( 'Input hook name or pick one from the suggested list as you type.', 'insert-headers-and-footers' ),
'id' => 'hook_name',
'default' => '',
'autocomplete' => $this->get_all_hooks_options(),
),
),
// Column 2.
array(
array(
'type' => 'text',
'label' => __( 'Callback function', 'insert-headers-and-footers' ),
'description' => __( 'Name of the function you want to add to this hook.', 'insert-headers-and-footers' ),
'id' => 'callback',
'default' => 'custom_function_' . time(),
),
array(
'type' => 'text',
'label' => __( 'Priority', 'insert-headers-and-footers' ),
'description' => __( 'Priority of this hook, by default 10.', 'insert-headers-and-footers' ),
'id' => 'priority',
'default' => '10',
),
),
// Column 3.
array(
array(
'type' => 'text',
'label' => __( 'Arguments list', 'insert-headers-and-footers' ),
'description' => __( 'Add comma-separated custom arguments that will be passed to the callback function depending on the action/filter.', 'insert-headers-and-footers' ),
'id' => 'arguments',
'default' => '',
),
),
),
),
'code' => array(
'label' => __( 'Code', 'insert-headers-and-footers' ),
'columns' => array(
// Column 1.
array(
array(
'type' => 'textarea',
'label' => __( 'PHP Code', 'insert-headers-and-footers' ),
'description' => __( 'Custom PHP code you want to run in the function, you can also edit this after you create the snippet.', 'insert-headers-and-footers' ),
'id' => 'code',
'code' => true,
),
),
),
),
);
}
/**
* Get the snippet code with dynamic values applied.
*
* @return string
*/
public function get_snippet_code() {
$arguments = $this->get_value( 'arguments' );
$arguments_array = explode( ',', $arguments );
$arguments_array = array_map( 'trim', $arguments_array );
$count = count( $arguments_array );
if ( $count > 1 ) {
$count = ", $count";
} else {
$count = '';
}
$arguments_formatted = implode( ', ', $arguments_array );
$priority = intval( $this->get_value( 'priority' ) );
$callback = str_replace( '-', '_', sanitize_title_with_dashes( $this->get_value( 'callback' ) ) );
return <<<EOD
// Add a hook.
function $callback( $arguments_formatted ) {
{$this->get_value( 'code' )}
}
{$this->get_value( 'hook_type' )}( '{$this->get_value( 'hook_name' )}', '$callback', {$priority}$count );
EOD;
}
}