Developer hooks for Ultimate Membership Pro
Run your own code when members sign up, pay, renew or cancel, and change what the plugin shows, with standard WordPress actions and filters.
// Runs when a Membership has expired
add_action( 'ihc_action_level_has_expired', function ( $user_id, $membership_id ) {
// Your code: update your CRM, send a message…
}, 10, 2 );
// Change the standard tabs of the account page
add_filter( 'ihc_public_account_page_menu_standard_tabs', function ( $tabs ) {
// Rename, reorder or remove tabs here
return $tabs;
} );
ihc_payment_completedActionihc_filter_register_form_extra_form_fieldsFilterihc_action_subscription_expiredActionActions and filters, the WordPress way
Ultimate Membership Pro calls its hooks at key moments, so your code can react or change the result.
Every hook, by topic
Taken from the Filters & Hooks screen of Ultimate Membership Pro on October 9, 2026. Your own dashboard always lists the hooks of the version you run, with the file each one runs in.
Registration and sign-up37 hooks
ump_before_register_new_userFilterump_before_submit_formFilterump_show_register_formFilterihc_filter_register_form_extra_form_fieldsFilterihc_filter_after_register_form_outputFilterihc_filter_register_process_check_errorsFilterihc_filter_register_process_form_fieldsFilterihc_filter_wp_fields_valuesFilterihc_filter_register_roleFilterump_before_printing_errorsFilterihc_filter_custom_fields_valuesFilterump_public_filter_redirect_page_after_registerFilterihc_register_redirect_filterFilterihc_filter_register_lite_process_check_errorsFilterihc_action_public_register_before_print_formActionump_before_insert_userActionump_on_register_actionActionihc_register_action_after_insertActionihc_action_create_user_review_requestActionihc_action_create_user_registerActionump_on_register_lite_actionActionRuns when a user signs up with the lite register form. Param: user ID (int).ihc_register_lite_actionActionihc_public_filter_register_form_no_lid_redirectFilterihc_action_template_form_file_before_fieldsActionihc_action_template_form_file_before_submit_buttonActionihc_action_template_form_file_after_submit_buttonActionihc_print_content_before_register_lite_formActionPrints content before the lite register form.ihc_print_content_after_register_lite_formActionPrints content after the lite register form.ihc_action_double_email_verificationActionihc_action_user_activation_email_check_successActionihc_double_email_verification_failActionRuns if double email verification fails. Param: user ID (int).ihc_double_email_verification_successActionRuns when double email verification succeeds. Param: user ID (int).ihc_action_approve_user_emailActionihc_action_approve_user_accountActionump_filter_public_check_email_messageFilterihc_before_user_save_custom_fieldActionihc_user_save_custom_fieldActionLogin, logout and passwords9 hooks
ihc_filter_login_form_htmlFilterihc_login_filter_stop_processFilterump_public_filter_post_id_on_redirect_after_loginFilterihc_do_action_on_loginActionihc_logout_actionActionump_public_filter_reset_password_linkFilterihc_filter_reset_password_processFilterihc_filter_reset_passwordFilterihc_action_password_has_been_resetActionMemberships and subscriptions36 hooks
ihc_before_new_subscription_actionActionihc_new_subscription_actionActionihc_action_before_subscription_activatedActionihc_action_after_subscription_activatedActionihc_action_after_subscription_first_time_activatedActionihc_action_after_subscription_renew_activatedActionihc_action_before_delete_user_subscriptionActionihc_action_after_subscription_deleteActionihc_action_before_delete_all_user_subscriptionActionihc_action_afters_delete_all_user_subscriptionActionihc_action_subscription_expiredActionihc_action_subscription_payment_dueActionihc_action_card_expire_reminderActionihc_action_subscription_enter_grace_periodActionihc_action_subscription_trial_expiredActionihc_action_level_has_expiredActionRuns when a Membership has expired. Params: user ID (int), Membership ID (int).ihc_delete_level_actionActionihc_save_level_meta_names_filterFilterFired when a Membership is saved. Param: array with the Membership data.ihc_save_level_filterFilterihc_action_admin_save_membershipActionihc_action_after_delete_membershipActionihc_public_get_user_levelsFilterihc_public_subscription_plan_list_levelsFilterFilters the Memberships shown in the subscription plan. Param: list of Memberships (array).ihc_filter_public_subscription_linkFilterihc_filter_public_stop_showing_cancel_bttnFilterihc_filter_public_stop_showing_remove_bttnFilterihc_filter_cancel_subscriptionFilterihc_filter_pause_subscriptionFilterihc_filter_resume_subscriptionFilterihc_action_after_cancel_subscriptionActionihc_action_payments_before_cancelActionihc_action_cancel_subscriptionActionihc_action_payments_before_pauseActionihc_action_pause_subscriptionActionihc_action_payments_before_resumeActionihc_action_resume_subscriptionActionPayments and orders36 hooks
ihc_payment_gateway_create_payment_objectFilterihc_payment_completedActionihc_payment_gateway_box_statusFilterihc_payment_gateway_statusFilterRuns when checking if a payment gateway is available. Param: true if available (bool).ihc_payment_gateways_listFilterihc_filter_payment_workflowFilterihc_filter_payments_input_dataFilterihc_filter_prepare_payment_level_dataFilterihc_filter_before_prepare_paymentFilterihc_filter_after_prepare_paymentFilterihc_filter_payments_before_insert_orderFilterihc_action_before_checkActionihc_action_after_checkActionihc_action_before_prepare_paymentActionihc_action_after_prepare_paymentActionihc_action_before_save_orderActionihc_action_before_after_orderActionihc_action_before_charge_paymentActionihc_action_after_charge_paymentActionihc_action_before_webhookActionihc_action_after_webhookActionihc_action_payment_failedActionihc_filter_delete_level_for_user_on_payment_refundFilterihc_filter_delete_level_for_user_on_payment_failedFilterump_paypal_user_do_refundActionihc_action_payments_before_refundActionihc_action_payments_after_refundActionihc_order_insert_dataFilterump_payment_checkActionihc_action_after_order_placedActionRuns after an order is created. Params: user ID (int), Membership ID (int).ihc_action_before_delete_orderActionRuns before an order is deleted. Param: order ID (int).ihc_filter_return_taxes_for_transactionFilterump_coupon_code_submitedActionRuns after a coupon code is submitted. Params: coupon code, user ID, Membership ID.ihc_bank_transfer_chargeActionihc_filter_the_default_countryFilterihc_filter_payment_logoFilterContent access12 hooks
ihc_filter_restrictionFilterfilter_on_ihc_test_if_must_blockFilterump_filter_block_url_redirect_linkFilterfilter_on_ihc_block_urlFilterfilter_on_ihc_link_to_redirectFilterfilter_on_ihc_check_drip_contentFilterfilter_on_ihc_replace_contentFilterihc_filter_post_metaFilterihc_action_public_postActionihc_meta_box_post_settings_htmlActionRuns when a post is added or edited, to print extra HTML in the settings box.ihc_insert_individual_page_contentFilterihc_filter_custom_menu_itemsFilterAccount page and profile12 hooks
ihc_filter_public_account_page_tab_linkFilterihc_account_page_custom_tab_contentFilterPrints the content of a custom tab on the account page. Params: tab content (string), tab slug.ihc_public_account_page_menu_custom_tabsFilterFilters the custom tabs in the account page menu. Param: list of custom tabs (array).ihc_public_account_page_menu_standard_tabsFilterFilters the standard tabs in the account page menu. Param: list of standard tabs (array).ump_public_account_page_level_expire_timeFilterump_public_account_page_subscription_table-rowActionihc_update_profile_form_htmlFilterihc_filter_the_profile_form_outputFilterump_before_update_userFilterump_on_update_actionActionihc_action_update_userActionihc_delete_user_actionActionEmails, notifications and opt-in13 hooks
ihc_filter_notification_before_expireFilterihc_send_notification_filter_messageFilterihc_admin_filter_notification_templateFilterihc_filter_notifications_runtime_listingFilterihc_save_notification_actionActionihc_admin_list_notifications_typesFilterihc_admin_remove_notification_from_listing_by_typeFilterihc_filter_constants_for_notificationsFilterihc_admin_notification_type_select_fieldActionihc_dashboard_notification_actionActionRuns when a new dashboard notification is added. Param: notification type (string).ihc_run_opt_in_actionActionRuns on opt-in. Params: email (string), opt-in service type (string).ump_public_action_optin_custom_serviceActionump_filter_optin_typesFilterAdmin dashboard28 hooks
ihc_admin_filter_user_membershipsFilterihc_admin_filter_datatable_members_each_row_dataFilterihc_filter_allowed_roles_in_dashboardFilterihc_filter_admin_show_the_dashboard_menuFilterihc_filter_admin_capability_for_dashboard_menuFilterump_filter_admin_plugin_top_messagesFilterihc_action_ajax_wss_loadedActionihc_admin_dashboard_after_top_menuActionump_action_admin_custom_limit_for_listing_usersFilterihc_filter_admin_is_admin_checkFilterihc_filter_admin_dashboard_tabsFilterump_print_admin_pageActionihc_filter_admin_dashboard_after_footer_htmlActionihc_admin_account_page_menu_standard_tabsFilterFilters the standard account page tabs listed in the admin. Param: array.ump_admin_after_top_menu_add_onsActionihc_admin_edit_save_level_after_submit_formActionihc_filter_admin_section_edit_membership_after_membership_detailsActionihc_filter_admin_section_edit_membership_after_membership_accessActionihc_filter_admin_section_edit_membership_after_membership_access_settingsActionihc_filter_admin_section_edit_membership_after_membership_billingActionihc_filter_admin_section_edit_membership_after_membership_payment_settingsActionihc_filter_admin_section_edit_membership_after_membership_planActionihc_level_admin_htmlActionump_filter_admin_list_paymentsFilterihc_payment_gateway_pageActionRuns in the admin payment settings. Param: payment type.ihc_admin_filter_members_datatable_column_namesFilterump_action_admin_list_user_column_name_after_total_spendActionump_action_admin_list_user_column_name_after_member_sinceActionGeneral and settings5 hooks
ihc_filter_on_load_templateFilterihc_action_general_initActionihc_default_options_group_filterFilterFilters a settings group. Params: list of settings (array), settings group type.ihc_is_magic_feat_active_filterFilterFilters whether a module is active. Params: is active (bool), module type (string).ihc_magic_feature_listFilterFilters the list of modules. Param: list of modules (array).Before you build on the hooks
A few things that keep your custom code working after updates.
No PHP needed for these
Connect other systems and apps without writing hooks.
Questions about hooks
Not sure your setup is covered? Search the documentation or try the live demo before you buy.
Where can I see all the hooks in Ultimate Membership Pro?
In your WordPress dashboard, on the plugin’s Filters & Hooks screen. It lists every action and filter with its type, description and the file it runs in, and you can show only actions or only filters.
What’s the difference between an action and a filter?
An action runs your code at a set moment, like a sign-up or a payment. A filter passes you a value, like a list of form fields or account page tabs, so you can change it and return it.
Where should I add my code?
In your child theme’s functions.php file or in a code snippets plugin. Don’t edit the plugin files, because updates replace them.
Can I run code when a Membership expires?
Yes. The ihc_action_level_has_expired action runs when a Membership has expired and passes the user ID and the Membership ID.
Can I add my own tabs to the member account page?
Yes. The ihc_public_account_page_menu_custom_tabs filter changes the custom tabs in the menu, and ihc_account_page_custom_tab_content prints a tab’s content. Without code, the Member Portal Tabs add-on in every plan adds tabs too.
Is there an API?
API Gate, in every plan, lets another system check a user’s Membership with a secure API call. For connections without code, there’s Zapier.
Build on Ultimate Membership Pro
Every plan includes the hooks, API Gate and Zapier. Try them on your own demo site first.
