{"id":62146,"date":"2024-02-13T09:04:55","date_gmt":"2024-02-13T14:04:55","guid":{"rendered":"https:\/\/memberpress.com\/docs\/action-hooks-in-memberpress\/"},"modified":"2024-05-21T08:09:45","modified_gmt":"2024-05-21T12:09:45","slug":"action-hooks-in-memberpress","status":"publish","type":"ht_kb","link":"https:\/\/memberpress.com\/es\/docs\/action-hooks-in-memberpress\/","title":{"rendered":"Ganchos de acci\u00f3n en MemberPress"},"content":{"rendered":"\n<p>Here you can find the list of the most common action hooks divided into sections that you can find and use in MemberPress.<\/p>\n\n\n\n<p>If you want to learn more about hooks please check out<br><a href=\"https:\/\/memberpress.com\/docs\/actions-and-filters-in-memberpress\/\" target=\"_blank\" rel=\"noopener\">Actions and Filters in MemberPress<\/a> article.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Checkout Form<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#mepr-above-checkout-form\">mepr-above-checkout-form<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-checkout-before-name\">mepr-checkout-before-name<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-checkout-after-email-field\">mepr-checkout-after-email-field<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-checkout-after-password-fields\">mepr-checkout-after-password-fields<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-checkout-before-coupon-field\">mepr-checkout-before-coupon-field<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-checkout-before-submit\">mepr-checkout-before-submit<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-stripe-payment-form-before-name-field\">mepr-stripe-payment-form-before-name-field<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-stripe-payment-form-card-field\">mepr-stripe-payment-form-card-field<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-stripe-payment-form\">mepr-stripe-payment-form<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-checkout-before-custom-fields\">mepr-checkout-before-custom-fields<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-checkout-after-custom-fields\">mepr-checkout-after-custom-fields<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Subscriptions & Transactions<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#mepr-signup\">mepr-signup<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-save-account\">mepr-save-account<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-event-create\">mepr-event-create<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-event-login\">mepr-event-login<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-event-member-signup-completed\">mepr-event-member-signup-completed<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-event-transaction-completed\">mepr-event-transaction-completed<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-event-recurring-transaction-completed\">mepr-event-recurring-transaction-completed<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-event-renewal-transaction-completed\">mepr-event-renewal-transaction-completed<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-event-recurring-transaction-failed\">mepr-event-recurring-transaction-failed<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-event-non-recurring-transaction-completed\">mepr-event-non-recurring-transaction-completed<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-event-non-recurring-transaction-expired\">mepr-event-non-recurring-transaction-expired<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-event-recurring-transaction-expired\">mepr-event-recurring-transaction-expired<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-event-transaction-refunded\">mepr-event-transaction-refunded<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-event-transaction-expired\">mepr-event-transaction-expired<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-event-subscription-created\">mepr-event-subscription-created<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-event-subscription-paused\">mepr-event-subscription-paused<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-event-subscription-resumed\">mepr-event-subscription-resumed<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-event-subscription-stopped\">mepr-event-subscription-stopped<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-event-subscription-expired\">mepr-event-subscription-expired<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-event-member-added\">mepr-event-member-added<\/a><\/li>\n\n\n\n<li><a href=\"#mepr_subscription_transition_status\">mepr_subscription_transition_status<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-txn-transition-status\">mepr-txn-transition-status<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-txn-status-complete\">mepr-txn-status-complete<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-txn-store\">mepr-txn-store<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-transaction-expired\">mepr-transaction-expired<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-admin-subscriptions-cell\">mepr-admin-subscriptions-cell<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-admin-transactions-cell\">mepr-admin-transactions-cell<\/a><\/li>\n\n\n\n<li><a href=\"#mepr_pre_delete_transaction\">mepr_pre_delete_transaction<\/a><\/li>\n\n\n\n<li><a href=\"#mepr_post_delete_transaction\">mepr_post_delete_transaction<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Account Page<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#mepr-account-home-before-name\">mepr-account-home-before-name<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-account-home-fields\">mepr-account-home-fields<\/a><\/li>\n\n\n\n<li><a href=\"#mepr_account_home\">mepr_account_home<\/a><\/li>\n\n\n\n<li><a href=\"#mepr_account_nav\">mepr_account_nav<\/a><\/li>\n\n\n\n<li><a href=\"#mepr_account_nav_content\">mepr_account_nav_content<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-account-after-password-fields\">mepr-account-after-password-fields<\/a><\/li>\n\n\n\n<li><a href=\"#mepr_account_password\">mepr_account_password<\/a><\/li>\n\n\n\n<li><a href=\"#mepr_account_payments_table_header\">mepr_account_payments_table_header<\/a><\/li>\n\n\n\n<li><a href=\"#mepr_account_payments_table_row\">mepr_account_payments_table_row<\/a><\/li>\n\n\n\n<li><a href=\"#mepr_account_payments\">mepr_account_payments<\/a><\/li>\n\n\n\n<li><a href=\"#mepr_before_account_subscriptions\">mepr_before_account_subscriptions<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-account-subscriptions-th\">mepr-account-subscriptions-th<\/a><\/li>\n\n\n\n<li><a href=\"#mepr_account_subscriptions_sub_account_auto_rebill\">mepr_account_subscriptions_sub_account_auto_rebill<\/a><\/li>\n\n\n\n<li><a href=\"#mepr_account_subscriptions_sub_account_terms\">mepr_account_subscriptions_sub_account_terms<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-account-subscriptions-actions\">mepr-account-subscriptions-actions<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-account-subscriptions-td\">mepr-account-subscriptions-td<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-account-subscriptions-table\">mepr-account-subscriptions-table<\/a><\/li>\n\n\n\n<li><a href=\"#mepr_account_subscriptions\">mepr_account_subscriptions<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Login Page<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#mepr-login-form-before-submit\">mepr-login-form-before-submit<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-forgot-password-form\">mepr-forgot-password-form<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-reset-password-after-password-fields\">mepr-reset-password-after-password-fields<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Options Page<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#mepr_display_pages_options\">mepr_display_pages_options<\/a><\/li>\n\n\n\n<li><a href=\"#mepr_display_account_options\">mepr_display_account_options<\/a><\/li>\n\n\n\n<li><a href=\"#mepr_display_emails_options\">mepr_display_emails_options<\/a><\/li>\n\n\n\n<li><a href=\"#mepr_display_marketing_options\">mepr_display_marketing_options<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Memberships Page<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#mepr-membership-meta-boxes\">mepr-membership-meta-boxes<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-membership-save-meta\">mepr-membership-save-meta<\/a><\/li>\n\n\n\n<li><a href=\"#mepr_members_list_table_row\">mepr_members_list_table_row<\/a><\/li>\n\n\n\n<li><a href=\"#mepr_products_permissions_tab\">mepr_products_permissions_tab<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Coupons Page<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#mepr-coupon-meta-boxes\">mepr-coupon-meta-boxes<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-coupon-save-meta\">mepr-coupon-save-meta<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-coupon-admin-enqueue-script\">mepr-coupon-admin-enqueue-script<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Miscellaneous<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#mepr-admin-subscriptions-cell\">mepr-admin-subscriptions-cell<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-account-is-active\">mepr-account-is-active<\/a><\/li>\n\n\n\n<li><a href=\"#mepr-account-is-inactive\">mepr-account-is-inactive<\/a><\/li>\n\n\n\n<li><a href=\"#mepr_menu\">mepr_menu<\/a><\/li>\n\n\n\n<li><a href=\"#mepr_enqueue_scripts\">mepr_enqueue_scripts<\/a><\/li>\n\n\n\n<li><a href=\"#mepr_payment_failure\">mepr_payment_failure<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Courses<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#mpcs_classroom_preview_menu\">mpcs_classroom_preview_menu<\/a><\/li>\n\n\n\n<li><a href=\"#mpcs_classroom_user_menu\">mpcs_classroom_user_menu<\/a><\/li>\n\n\n\n<li><a href=\"#mpcs_classroom_start_header\">mpcs_classroom_start_header<\/a><\/li>\n\n\n\n<li><a href=\"#mpcs_classroom_end_header\">mpcs_classroom_end_header<\/a><\/li>\n\n\n\n<li><a href=\"#mpcs_classroom_start_sidebar\">mpcs_classroom_start_sidebar<\/a><\/li>\n\n\n\n<li><a href=\"#mpcs_classroom_end_sidebar\">mpcs_classroom_end_sidebar<\/a><\/li>\n\n\n\n<li><a href=\"#mpcs_courses_footer\">mpcs_courses_footer<\/a><\/li>\n\n\n\n<li><a href=\"#mpcs_classroom_start_instructor\">mpcs_classroom_start_instructor<\/a><\/li>\n\n\n\n<li><a href=\"#mpcs_classroom_end_instructor\">mpcs_classroom_end_instructor<\/a><\/li>\n\n\n\n<li><a href=\"#mpcs_started_course\" title=\"\">mpcs_started_course<\/a><\/li>\n\n\n\n<li><a href=\"#mpcs_completed_course\" title=\"\">mpcs_completed_course<\/a><\/li>\n\n\n\n<li><a href=\"#mpcs_started_section\" title=\"\">mpcs_started_section<\/a><\/li>\n\n\n\n<li><a href=\"#mpcs_completed_section\" title=\"\">mpcs_completed_section<\/a><\/li>\n\n\n\n<li><a href=\"#mpcs_completed_lesson\" title=\"\">mpcs_completed_lesson<\/a><\/li>\n\n\n\n<li><a href=\"#mpcs_admin_general_options\" title=\"\">mpcs_admin_general_options<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Corporate Accounts<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#mpca_add_sub_account\">mpca_add_sub_account<\/a><\/li>\n\n\n\n<li><a href=\"#mpca_remove_sub_account\">mpca_remove_sub_account<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-above-checkout-form\">mepr-above-checkout-form<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<div>It is used on registration page and allows you to add custom code above the registration form<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$membership_id<\/strong> Number<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_content_above_registration_form($membership_id) {\n    \/\/ Put your content here\n}\nadd_action('mepr-above-checkout-form', 'mepr_content_above_registration_form');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-checkout-before-name\">mepr-checkout-before-name<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<div>It is used on registration form above the first and last name<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$membership_id<\/strong> Number<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_content_above_name($membership_id) {\n    \/\/ Put your content here\n}\nadd_action('mepr-checkout-before-name', 'mepr_content_above_name');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-checkout-after-email-field\">mepr-checkout-after-email-field<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add Email Validation Field to MemberPress checkout form<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$membership_id<\/strong> Number<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\"><?php\nfunction display_validate_email_field($membership_id) {\n    ?>\n    <div class=\"mp-form-row mepr_validate_email\">\n        <div class=\"mp-form-label\">\n            <label><?php _ex('Verify Email:*', 'ui', 'memberpress'); ?<\/label>\n            <span class=\"cc-error\"><?php _ex('Invalid Email', 'ui', 'memberpress'); ?><\/span>\n        <\/div>\n        <input type=\"email\" name=\"user_validate_email\" id=\"user_validate_email\" class=\"mepr-form-input\" value=\"\" required \/>\n    <\/div>\n    <?php\n}\nadd_action('mepr-checkout-after-email-field', 'display_validate_email_field');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-checkout-after-password-fields\">mepr-checkout-after-password-fields<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<div>It is used on registration form below password fields<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$membership_id<\/strong> Number<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">add_action('mepr-checkout-after-password-fields', 'mepr_content_after_password');\nfunction mepr_content_after_password($membership_id) {\n    \/\/ Put your content here\n}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-checkout-before-coupon-field\">mepr-checkout-before-coupon-field<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<div>It is used on registration form above coupon<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$membership_id<\/strong> Number<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<p>Add website field before coupon field<br><em>(it requires more code for saving)<\/em><\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_add_website_field($membership_id) {\n  ?>\n    <div class=\"mp-form-row mepr_website_field\">\n      <div class=\"mp-form-label\">\n        <label>Website:*<\/label>\n    <\/div>\n      <input type=\"text\" name=\"mepr_website_field\" id=\"mepr_website_field\" class=\"mepr-form-input\" value=\"<?php echo (isset($_POST['mepr_website_field']))?stripslashes($_POST['mepr_website_field']):''; ?>\" \/>\n    <\/div>\n    <?php\n}\nadd_action('mepr-before-coupon-field', 'mepr_add_website_field');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-checkout-before-submit\">mepr-checkout-before-submit<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<div>It is used on registration form above submit button<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$membership_id<\/strong> Number<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<p>Integrates MemberPress with<br><a href=\"https:\/\/wordpress.org\/plugins\/invisible-recaptcha\/\">https:\/\/wordpress.org\/plugins\/invisible-recaptcha\/<\/a><\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function add_invisible_recaptcha_mepr_signup($membership_ID) { ?>\n    <div class=\"mp-form-row mepr_invisible_recaptcha\">\n        <?php do_action('google_invre_render_widget_action'); ?>\n    <\/div>\n<?php\n}\nadd_action('mepr-checkout-before-submit', 'add_invisible_recaptcha_mepr_signup');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-stripe-payment-form-before-name-field\">mepr-stripe-payment-form-before-name-field<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<div>Add HTML above Stripe credit card fields<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$txn<\/strong> Transaction Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_stripe_payment_form_before_name_field($txn) {\n  \/\/ Put your content here\n}\nadd_action('mepr-stripe-payment-form-before-name-field', 'mepr_stripe_payment_form_before_name_field');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-stripe-payment-form-card-field\">mepr-stripe-payment-form-card-field<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<div>Add HTML below \u201cName on the card\u201d Stripe field<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$txn<\/strong> Transaction Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_stripe_payment_form_card_field($txn) {\n  \/\/ Put your content here\n}\nadd_action('mepr-stripe-payment-form-card-field', 'mepr_stripe_payment_form_card_field');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-stripe-payment-form\">mepr-stripe-payment-form<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<div>Add HTML below Stripe credit card fields<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$txn<\/strong> Transaction Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_stripe_payment_form($txn) {\n  \/\/ Put your content here\n}\nadd_action('mepr-stripe-payment-form', 'mepr_stripe_payment_form');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-checkout-before-custom-fields\">mepr-checkout-before-custom-fields<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<div>Add HTML above custom fields in the checkout form<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$membership_id<\/strong> Number<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_checkout_before_custom_fields($membership_id) {\n  \/\/ Put your content here\n}\nadd_action('mepr-checkout-before-custom-fields', 'mepr_checkout_before_custom_fields');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-checkout-after-custom-fields\">mepr-checkout-after-custom-fields<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<div>Add HTML below custom fields in the checkout form<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$membership_id<\/strong> Number<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_checkout_after_custom_fields($txn) {\n  \/\/ Put your content here\n}\nadd_action('mepr-checkout-after-custom-fields', 'mepr_checkout_after_custom_fields');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-signup\">mepr-signup<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>It is used for processing the signup form before the logic progresses on to \u2018the_content'<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$txn<\/strong> Transaction Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<p>Activates UPME profiles when a user signs up via MemberPress<\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_upme_activate($txn) {\n  update_user_meta($txn->user_id, 'upme_activation_status', 'ACTIVE');\n  update_user_meta($txn->user_id, 'upme_approval_status', 'ACTIVE');\n  update_user_meta($txn->user_id, 'upme_user_profile_status', 'ACTIVE');\n  upme_update_user_cache($txn->user_id);\n}\nadd_action('mepr-signup', 'mepr_upme_activate'); \/\/Use this if you don't want to wait for completed payment<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-save-account\">mepr-save-account<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>It is used on saving of the main Account page on front-end<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$user<\/strong> User Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<p>Save the new display name on the Account page<\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mpdn_save_account($user) {\n  $display_name = stripslashes($_POST['mepr_user_display_name']);\n  $user->display_name = $display_name;\n  $user->store();\n\n  \/\/Set the nickname to the display name also, why not?\n  update_user_meta($user->ID, 'nickname', $display_name);\n}\nadd_action('mepr-save-account', 'mpdn_save_account');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-event-create\">mepr-event-create<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>It is used every time a new event is created and stored in the wp_mepr_events table<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$event<\/strong> Event Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<p>Do something when a user becomes active on a membership, and when they become inactive on a membership<\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function listen_to_mepr_events($event) {\n  $obj = $event->get_data();\n  \/\/$obj might be a MeprTransaction object or a MeprSubscription object\n\n  if(!($obj instanceof MeprTransaction) && !($obj instanceof MeprSubscription)) {\n    return; \/\/ nothing here to do if we're not dealing with a txn or sub\n  }\n\n  $member = $obj->user();\n\n  if($member->is_active_on_membership($obj)) {\n    \/\/member is active on membership\n  }\n  else {\n    \/\/member is no longer active on this membership\n  }\n}\nadd_action('mepr-event-create', 'listen_to_mepr_events');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-event-login\">mepr-event-login<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>It is used for the first login on the website during new signup<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$event<\/strong> Event Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<p>Remove State Field from MemberPress Signup Forms<\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">\/\/Remove the State Field completely\nfunction trim_down_address_fields($options) {\n  foreach($options->address_fields as $i => $o) {\n    if($o->field_key == 'mepr-address-state') {\n      unset($options->address_fields[$i]);\n    }\n  }\n\n  return $options;\n}\nadd_filter('mepr_fetch_options', 'trim_down_address_fields');\n\n\/\/Add a fake state value to each user\nfunction populate_state_field($event) {\n  $user = $event->get_data();\n  update_user_meta($user->ID, 'mepr-address-state', 'fake');\n}\nadd_action('mepr-event-login', 'populate_state_field');\n\n\/\/For Single Page Checkout, add Fake State\n\nfunction mepr_cust_fake_state($tax_rate, $country, $state, $postcode, $city, $street, $usr = null, $prd_id = null) {\n  $_POST['mepr_address_state'] = 'fake';\n  return $tax_rate;\n}\nadd_filter('mepr_find_tax_rate', 'mepr_cust_fake_state', 19, 8);<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-event-member-signup-completed\">mepr-event-member-signup-completed<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Capture a new member signup. Only ever triggers once for each new member. Does not trigger for existing members who have subscribed to a Membership before. The user may not be logged in when this is called as it is triggered when a user is added over the REST API, and also when a user is added from the dashboard (MemberPress -> Members -> Add New)<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$event<\/strong> Event Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_capture_new_member_signup_completed($event) {\n  $user = $event->get_data();\n  $txn_data = json_decode($event->args);\n  \/\/Do what you need\n}\nadd_action('mepr-event-member-signup-completed', 'mepr_capture_new_member_signup_completed');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-event-transaction-completed\">mepr-event-transaction-completed<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<p>Capture any completed transaction (recurring and non-recurring) event<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$event<\/strong> Event Object<\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function catch_first_payment_after_trial($event) {\n  $transaction = $event->get_data();\n  $subscription = $transaction->subscription();\n  $is_first_real_payment = false;\n\n  if($subscription !== false) {\n    if($subscription->trial && $subscription->trial_amount <= 0.00 && $subscription->txn_count == 1) {\n      $is_first_real_payment = true;\n    }\n    elseif($subscription->trial && $subscription->trial_amount > 0.00 && $subscription->txn_count == 2) {\n      $is_first_real_payment = true;\n    }\n  }\n\n  if($is_first_real_payment) {\n    \/\/ This is the first real payment after a paid or free trial period\n    \/\/ So do what you will in here\n  }\n}\nadd_action('mepr-event-transaction-completed', 'catch_first_payment_after_trial');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-event-recurring-transaction-completed\">mepr-event-recurring-transaction-completed<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Capture every transaction completed event for recurring<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$event<\/strong> Event Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<p>Catch the first completed transaction for recurring memberships<\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function catch_first_recurring_payments($event) {\n  $transaction = $event->get_data();\n  $sub = $txn->subscription();\n  if($sub->txn_count > 1) { return; }\n  \/\/ Get some data\n  $product_id = $txn->product_id;\n  $user_id = $txn->user_id;\n  $user = get_user_by('id', $user_id);\n  $user_email = $user->user_email;\n  $user_name = $user->display_name;\n}\nadd_action('mepr-event-recurring-transaction-completed', 'catch_first_recurring_payments');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-event-renewal-transaction-completed\">mepr-event-renewal-transaction-completed<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Capture all completed renewal transactions event for recurring memberships. It does not capture the first payment for recurring membership.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$event<\/strong> Event Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function catch_renewal_payments($event) {\n  $transaction = $event->get_data();\n  \/\/ Do what you need\n}\nadd_action('mepr-event-renewal-transaction-completed', 'catch_renewal_payments');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-event-recurring-transaction-failed\">mepr-event-recurring-transaction-failed<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Capture a failed Transaction event<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$event<\/strong> Event Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_capture_failed_transaction($event) {\n  $transaction = $event->get_data();\n  $subscription = $transaction->subscription();\n  $user = $transaction->user();\n  \/\/ Do what you need\n}\nadd_action('mepr-event-recurring-transaction-failed', 'mepr_capture_failed_transaction');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-event-non-recurring-transaction-completed\">mepr-event-non-recurring-transaction-completed<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Capture a new One-Time Subscription created event<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$event<\/strong> Event Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_capture_new_one_time_sub($event) {\n  $transaction = $event->get_data();\n  $user = $transaction->user();\n  \/\/Do what you need\n}\nadd_action('mepr-event-non-recurring-transaction-completed', 'mepr_capture_new_one_time_sub');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-event-non-recurring-transaction-expired\">mepr-event-non-recurring-transaction-expired<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<p>Capture expired non-recurring transaction event<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$event<\/strong> Event Object<\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function catch_non_recurring_txn_expired($event) {\n  $transaction = $event->get_data();\n  $user = $transaction->user();\n  \/\/ Do what you need\n}\nadd_action('mepr-event-non-recurring-transaction-expired', 'catch_non_recurring_txn_expired');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-event-recurring-transaction-expired\">mepr-event-recurring-transaction-expired<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<p>Capture expired recurring transaction event<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$event<\/strong> Event Object<\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function catch_recurring_txn_expired($event) {\n  $transaction = $event->get_data();\n  $user = $transaction->user();\n  \/\/ Do what you need\n}\nadd_action('mepr-event-recurring-transaction-expired', 'catch_recurring_txn_expired');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-event-transaction-refunded\">mepr-event-transaction-refunded<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Capture a refunded Transaction event<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$event<\/strong> Event Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_capture_refunded_transaction($event) {\n  $transaction = $event->get_data();\n  $subscription = $transaction->subscription(); \/\/This may return false if it's a one-time transaction that was refunded\n  $user = $transaction->user();\n  \/\/Do what you need\n}\nadd_action('mepr-event-transaction-refunded', 'mepr_capture_refunded_transaction');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-event-transaction-expired\">mepr-event-transaction-expired<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Capture a Transaction expired event<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$event<\/strong> Event Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_capture_expired_transaction($event) {\n  \/\/BE CAREFUL WITH THIS ONE\n  \/\/This could be a prior recurring transaction that has expired\n  \/\/So the user might still be active on the subscription with a new transaction\n  \/\/So you might check\n  \/\/ - if the $subscription exists\n  \/\/ - if so, then is $subscription->status = 'active' still\n  \/\/ - if so, then it's possible the user is not really expired on it\n  \/\/   - to check this use the $user->is_already_subscribed_to($transaction->product_id) method\n  \/\/  Note: the is_already_subscribed_to method only checks active subscriptions.\n\n  $transaction = $event->get_data();\n  $subscription = $transaction->subscription(); \/\/This may return false if it's a one-time transaction that has expired\n  $user = $transaction->user();\n  \/\/Do what you need\n}\nadd_action('mepr-event-transaction-expired', 'mepr_capture_expired_transaction');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-event-subscription-created\">mepr-event-subscription-created<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Capture a new Recurring Subscription created event<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$event<\/strong> Event Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_capture_new_recurring_sub($event) {\n  $subscription = $event->get_data();\n  $user = $subscription->user();\n  \/\/Do what you need\n}\nadd_action('mepr-event-subscription-created', 'mepr_capture_new_recurring_sub');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-event-subscription-paused\">mepr-event-subscription-paused<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Capture a Recurring Subscription paused event<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$event<\/strong> Event Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_capture_paused_sub($event) {\n  $subscription = $event->get_data();\n  $user = $subscription->user();\n  \/\/Do what you need\n}\nadd_action('mepr-event-subscription-paused', 'mepr_capture_paused_sub');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-event-subscription-resumed\">mepr-event-subscription-resumed<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Capture a Recurring Subscription resumed event<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$event<\/strong> Event Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_capture_resumed_sub($event) {\n  $subscription = $event->get_data();\n  $user = $subscription->user();\n  \/\/Do what you need\n}\nadd_action('mepr-event-subscription-resumed', 'mepr_capture_resumed_sub');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-event-subscription-stopped\">mepr-event-subscription-stopped<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Capture a Recurring Subscription cancelled event (and detect who did it)<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$event<\/strong> Event Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_capture_stopped_sub($event) {\n  $subscription = $event->get_data();\n  $user = $subscription->user();\n\n  if(is_user_logged_in()) {\n    if(current_user_can('manage_options')) {\n      \/\/An admin cancelled this from the dashboard\n    }\n    else {\n      \/\/User cancelled from their account page or upgraded to a new plan\n    }\n  }\n  else {\n    \/\/Cancelled from a gateway Webhook or IPN notification\n    \/\/Not really a way to tell why but it could have been an\n    \/\/ - admin cancelling it at the gateway instead of in the dashboard\n    \/\/ - or the gateway could have cancelled it because of too many failed payments\n    \/\/ - or the gateway could have cancelled it because the max billing cycles was reached\n    \/\/ - or in the case of PayPal a user might have cancelled their recurring profile from in their PayPal account\n  }\n}\nadd_action('mepr-event-subscription-stopped', 'mepr_capture_stopped_sub');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-event-subscription-expired\">mepr-event-subscription-expired<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Capture when a subscription expires<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$sub<\/strong> Subscription Object <br><strong>$txn<\/strong> Transaction Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_capture_sub_expired($sub, $txn) {\n  \/\/Do what you need\n}\nadd_action('mepr-event-subscription-expired', 'mepr_capture_sub_expired', 10, 2);<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-event-member-added\">mepr-event-member-added<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Capture a signup (user completed step 1, but hasn't necessarily paid yet)<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$event<\/strong> Event Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_capture_new_member_added($event) {\n  $user = $event->get_data();\n  \/\/Do what you need\n}\nadd_action('mepr-event-member-added', 'mepr_capture_new_member_added');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr_subscription_transition_status\">mepr_subscription_transition_status<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Capture when the status of the subscription is changed during signup or updating the subscription<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$old_status<\/strong> String <br><strong>$new_status<\/strong> String <br><strong>$sub<\/strong> Subscription Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_subscription_transition_status_fn($old_status, $new_status, $sub) {\n  \/\/ Do what you need\n}\nadd_action('mepr_subscription_transition_status', 'mepr_subscription_transition_status_fn', 10, 3);\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-txn-transition-status\">mepr-txn-transition-status<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Capture after transaction is done processing<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$old_status<\/strong> String <br><strong>$new_status<\/strong> String <br><strong>$txn<\/strong> Transaction Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_txn_transition_status_fn($old_status, $new_status, $txv) {\n  \/\/ Do what you need\n}\nadd_action('mepr-txn-transition-status', 'mepr_txn_transition_status_fn', 10, 3);<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-txn-status-complete\">mepr-txn-status-complete<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Called after completing the payment<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$event<\/strong> Transaction Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<p>Activate UPME profile when a user signs up via MemberPress<\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_upme_activate($txn) {\n  update_user_meta($txn->user_id, 'upme_activation_status', 'ACTIVE');\n  update_user_meta($txn->user_id, 'upme_approval_status', 'ACTIVE');\n  update_user_meta($txn->user_id, 'upme_user_profile_status', 'ACTIVE');\n  upme_update_user_cache($txn->user_id);\n}\nadd_action('mepr-txn-status-complete', 'mepr_upme_activate');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-txn-store\">mepr-txn-store<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Called after transaction is done processing including the subscr txn_count<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$txn<\/strong> Transaction Object <br><strong>$old_txn<\/strong> Transaction Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_txn_store_fn($txn, $old_txn) {\n  \/\/ Do what you need\n}\nadd_action('mepr-txn-store', 'mepr_txn_store_fn', 10, 2);<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-transaction-expired\">mepr-transaction-expired<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Called when the transaction expires<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$txn<\/strong> Transaction Object <br><strong>$status<\/strong> Boolean<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<p>Show or hide UserPro profile based on subscription status<\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_sync_user_pro_visibility($txn, $status = false) {\n  global $userpro;\n\n  if(class_exists('MeprUser')) {\n    $user = new MeprUser($txn->user_id);\n\n    \/\/Make sure it's a valid user still\n    if(!isset($user->ID) || !$user->ID) { return; }\n\n    $subs = $user->active_product_subscriptions();\n\n    if(!empty($subs)) {\n      $userpro->unblock_account($user->ID);\n    }\n    else {\n      $userpro->block_account($user->ID);\n    }\n  }\n}\nadd_action('mepr-txn-expired', 'mepr_sync_user_pro_visibility', 10, 2);<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-admin-subscriptions-cell\">mepr-admin-subscriptions-cell<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>It is used to add a column to the Subscriptions page on the admin side<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$column_name<\/strong> String <br><strong>$rec<\/strong> Transaction Object <br><strong>$table<\/strong> Subscription Table Object <br><strong>$attributes<\/strong> String<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<p><em>(it requires more code to function properly)<\/em><\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_add_admin_subscriptions_cell($column_name, $rec, $table, $attributes) {\n  $user = new MeprUser($rec->user_id);\n\n  if(strpos($column_name, '_site') !== false && (int)$user->ID > 0) {\n    $website = 'None';\n    $website_fields = get_user_meta($user->ID, 'mepr_custom_website_fields', true);\n\n    if($website_fields) {\n      foreach($website_fields as $f) {\n        if(!$table->lifetime && $rec->ID == $f['sub_id']) {\n          $website = $f['website'];\n          break;\n        }\n        elseif($table->lifetime && $rec->ID == $f['txn_id']) {\n          $website = $f['website'];\n          break;\n        }\n      }\n    } ?>\n      <td <?php echo $attributes; ?>><?php echo $website; ?><\/td>\n    <?php\n  }\n}\nadd_action('mepr-admin-subscriptions-cell', 'mepr_add_admin_subscriptions_cell', 10, 4);<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-admin-transactions-cell\">mepr-admin-transactions-cell<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>It is used to add a column to the Transactions page on the admin side<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$column_name<\/strong> String <br><strong>$rec<\/strong> Transaction Object <br><strong>$attributes<\/strong> String<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_add_admin_transactions_cell($column_name, $rec, $attributes) {\n  \/\/ Do what you need\n}\nadd_action('mepr-admin-transactions-cell', 'mepr_add_admin_transactions_cell', 10, 3);<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr_pre_delete_transaction\">mepr_pre_delete_transaction<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Do action before removing the transaction from the database<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$txn<\/strong> Transaction Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_pre_delete_transaction_fn($txn) {\n  \/\/ Do action here\n}\nadd_action('mepr_pre_delete_transaction', 'mepr_pre_delete_transaction_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr_post_delete_transaction\">mepr_post_delete_transaction<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Do action after removing the transaction from the database<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$id<\/strong> Number <br><strong>$user<\/strong> User Object <br><strong>$result<\/strong> Boolean<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_post_delete_transaction_fn($id, $user, $result) {\n  \/\/ Do action here\n}\nadd_action('mepr_post_delete_transaction', 'mepr_post_delete_transaction_fn', 3, 10);<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-account-home-before-name\">mepr-account-home-before-name<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content to the Home tab of the Account page before the First Name field<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$user<\/strong> User Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_account_home_before_name($user) {\n  \/\/ Do what you need\n}\n add_action('mepr-account-home-before-name', 'mepr_account_home_before_name');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-account-home-fields\">mepr-account-home-fields<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content to the Home tab of the Account page before the Save Profile button<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$user<\/strong> User Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<p><em>(it requires more code to function properly)<\/em><\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mpdn_show_on_account($user) {\n  ?>\n    <div class=\"mp-form-row\">\n      <div class=\"mp-form-label\">\n        <label>Display Name Publically As:*<br\/><small>Must be different than your username and email address<\/small><\/label>\n      <\/div>\n      <input type=\"text\" name=\"mepr_user_display_name\" id=\"mepr_user_display_name\" class=\"mepr-form-input mepr-display-name\" value=\"<?php echo $user->display_name; ?>\" \/>\n    <\/div>\n    <?php\n}\nadd_action('mepr-account-home-fields', 'mpdn_show_on_account');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr_account_home\">mepr_account_home<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content at the end of the Home tab of the Account page<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$user<\/strong> User Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_account_home($user) {\n  \/\/ Do what you need\n}\n add_action('mepr_account_home', 'mepr_account_home');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr_account_nav\">mepr_account_nav<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>It is used to add a navigation item to the navigation of the Account page<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$action<\/strong> String<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_add_some_tabs($action) {\n  $support_active = (isset($_GET['action']) && $_GET['action'] == 'premium-support')?'mepr-active-nav-tab':'';\n  ?>\n    <span class=\"mepr-nav-item premium-support <?php echo $support_active; ?>\">\n      <a href=\"\/account\/?action=premium-support\">Premium Support<\/a>\n    <\/span>\n    <?php\n}\nadd_action('mepr_account_nav', 'mepr_add_some_tabs');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr_account_nav_content\">mepr_account_nav_content<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>It is used to add the content to the new tab on the Account page<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$action<\/strong> String<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_add_tabs_content($action) {\n  if($action == 'premium-support'): \/\/Update this 'premium-support' to match what you put above (?action=premium-support)\n  ?>\n    <div id=\"custom-support-form\">\n      <form action=\"\" method=\"post\">\n        <label for=\"subject\">Enter Subject:<\/label><br\/>\n        <input type=\"text\" name=\"subject\" id=\"subject\" \/>\n\n        <br\/><br\/>\n\n        <label for=\"content\">Enter Content:<\/label><br\/>\n        <input type=\"text\" name=\"content\" id=\"content\" \/>\n\n        <br\/><br\/>\n\n        <input type=\"submit\" name=\"premium-support-submit\" value=\"Submit\" \/>\n      <\/form>\n    <\/div>\n    <?php\n  endif;\n}\nadd_action('mepr_account_nav_content', 'mepr_add_tabs_content');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-account-after-password-fields\">mepr-account-after-password-fields<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content to the Change password form of the Account page before the Submit button<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$user<\/strong> User Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_account_after_password_fields($user) {\n  \/\/ Add HTML code here\n}\nadd_action('mepr-account-after-password-fields', 'mepr_account_after_password_fields');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr_account_password\">mepr_account_password<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content at the end of the Change password form on the Account page<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$user<\/strong> User Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_account_password($user) {\n  \/\/ Add HTML code here\n}\nadd_action('mepr_account_password', 'mepr_account_password');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr_account_payments_table_header\">mepr_account_payments_table_header<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add a column at the end of the Payments tab of the Account page<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_account_payments_table_header() {\n  ?>\n  <th><?php _ex('Custom Info', 'ui', 'memberpress'); ?><\/th>\n  <?php\n}\nadd_action('mepr_account_payments_table_header', 'mepr_account_payments_table_header');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr_account_payments_table_row\">mepr_account_payments_table_row<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add an additional field at the end of the Payments tab of the Account page<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$txn<\/strong> Transaction Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_account_payments_table_row($txn) {\n  \/\/ Do what you need\n}\nadd_action('mepr_account_payments_table_row', 'mepr_account_payments_table_row');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr_account_payments\">mepr_account_payments<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content at the end of the Payments tab of the Account page<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$user<\/strong> User Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_account_payments($user) {\n  \/\/ Do what you need\n}\nadd_action('mepr_account_payments', 'mepr_account_payments');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr_before_account_subscriptions\">mepr_before_account_subscriptions<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content at the beginning of the Subscriptions tab on the Account page<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$user<\/strong> User Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_before_account_subscriptions($user) {\n  \/\/ Add HTML code here\n}\nadd_action('mepr_before_account_subscriptions', 'mepr_before_account_subscriptions');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-account-subscriptions-th\">mepr-account-subscriptions-th<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>It is used to display label in a new column in the Subscriptions tab of the Account page<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<p><em>(it requires more code to function properly)<\/em><\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_add_subscriptions_th($user, $subs) {\n  ?>\n    <th>Site<\/th>\n    <?php\n}\nadd_action('mepr-account-subscriptions-th', 'mepr_add_subscriptions_th', 10, 2);<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr_account_subscriptions_sub_account_auto_rebill\">mepr_account_subscriptions_sub_account_auto_rebill<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content to the Sub Account in the Subscription field of the Subscriptions tab on the Account page<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$txn<\/strong> Transaction Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_account_subscriptions_sub_account_auto_rebill_fn($txn) {\n  \/\/ Add HTML code here\n}\nadd_action('mepr_account_subscriptions_sub_account_auto_rebill', 'mepr_account_subscriptions_sub_account_auto_rebill_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr_account_subscriptions_sub_account_terms\">mepr_account_subscriptions_sub_account_terms<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content below the Subscription field of the Subscriptions tab on the Account page<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$txn<\/strong> Transaction Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_account_subscriptions_sub_account_terms_fn($txn) {\n  \/\/ Add HTML code here\n}\nadd_action('mepr_account_subscriptions_sub_account_terms', 'mepr_account_subscriptions_sub_account_terms_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-account-subscriptions-actions\">mepr-account-subscriptions-actions<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content below actions columns in the Subscriptions tab on the Account page<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$user<\/strong> User Object <br><strong>$sub<\/strong> Subscription Object <br><strong>$txn<\/strong> Transaction Object <br><strong>$is_sub<\/strong> Boolean<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_account_subscriptions_actions($user, $sub, $txn, $is_sub) {\n  \/\/ Add HTML code here\n}\nadd_action('mepr-account-subscriptions-actions', 'mepr_account_subscriptions_actions', 10, 4);<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-account-subscriptions-td\">mepr-account-subscriptions-td<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>It is used to populate a field in a new column in the Subscriptions tab of the Account page<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<p><em>(it requires more code to function properly)<\/em><\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_add_subscriptions_td($user, $sub, $txn, $is_recurring) {\n  $website = 'None';\n  $website_fields = get_user_meta($user->ID, 'mepr_custom_website_fields', true);\n\n  if($website_fields) {\n    foreach($website_fields as $f) {\n      if($is_recurring && $sub->ID == $f['sub_id']) {\n        $website = $f['website'];\n        break;\n      }\n      elseif(!$is_recurring && $txn->id == $f['txn_id']) {\n        $website = $f['website'];\n        break;\n      }\n    }\n  } ?>\n    <td data-label=\"Website\">\n      <div class=\"mepr-account-website\"><?php echo $website; ?><\/div>\n    <\/td>\n    <?php\n}\nadd_action('mepr-account-subscriptions-td', 'mepr_add_subscriptions_td', 10, 4);<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-account-subscriptions-table\">mepr-account-subscriptions-table<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add a row at the end of the Subscriptions table on the Account page<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$user<\/strong> User Object <br><strong>$subscription<\/strong> Subscription Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_account_subscriptions_table($user, $subscription) {\n  \/\/ Add HTML code here\n}\nadd_action('mepr-account-subscriptions-table', 'mepr_account_subscriptions_table', 10, 2);<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr_account_subscriptions\">mepr_account_subscriptions<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content at the end of the Subscriptions tab on the Account page<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$user<\/strong> User Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_account_subscriptions($user) {\n  \/\/ Add HTML code here\n}\nadd_action('mepr_account_subscriptions', 'mepr_account_subscriptions');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-login-form-before-submit\">mepr-login-form-before-submit<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content before the Remember Me checkbox on the Login page<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_login_form_before_submit() {\n  \/\/ Add HTML code here\n}\nadd_action('mepr-login-form-before-submit', 'mepr_login_form_before_submit');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-forgot-password-form\">mepr-forgot-password-form<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content before the Submit button on the Forgot Login Password page<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_forgot_password_form() {\n  \/\/ Add HTML code here\n}\nadd_action('mepr-forgot-password-form', 'mepr_forgot_password_form');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-reset-password-after-password-fields\">mepr-reset-password-after-password-fields<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content after the Password field on the Reset Login Password page<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_reset_password_after_password_fields() {\n  \/\/ Add HTML code here\n}\nadd_action('mepr-reset-password-after-password-fields', 'mepr_reset_password_after_password_fields');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr_display_pages_options\">mepr_display_pages_options<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content to the end of the Pages tab in the MemberPress settings<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_display_pages_options_fn() {\n  \/\/ Do what you need\n}\nadd_action('mepr_display_pages_options', 'mepr_display_pages_options_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr_display_account_options\">mepr_display_account_options<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content to the end of the Account tab in the MemberPress settings<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_display_account_options_fn() {\n  \/\/ Do what you need\n}\nadd_action('mepr_display_account_options', 'mepr_display_account_options_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr_display_emails_options\">mepr_display_emails_options<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content to the end of the Emails tab in the MemberPress settings<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_display_emails_options_fn() {\n  \/\/ Do what you need\n}\nadd_action('mepr_display_emails_options', 'mepr_display_emails_options_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr_display_marketing_options\">mepr_display_marketing_options<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content to the end of the Marketing tab in the MemberPress settings<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_display_marketing_options_fn() {\n  \/\/ Do what you need\n}\nadd_action('mepr_display_marketing_options', 'mepr_display_marketing_options_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-membership-meta-boxes\">mepr-membership-meta-boxes<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add a meta box to the Membership<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$membership<\/strong> Membership Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_membership_meta_boxes_fn($membership) {\n  \/\/ Do what you need\n}\nadd_action('mepr-membership-meta-boxes', 'mepr_membership_meta_boxes_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-membership-save-meta\">mepr-membership-save-meta<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Do what you need once a membership is saving<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$txn<\/strong> Membership Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_membership_save_meta_fn($membership) {\n  \/\/ Do what you need\n}\nadd_action('mepr-membership-save-meta', 'mepr_membership_save_meta_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr_members_list_table_row\">mepr_members_list_table_row<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Display a custom column in the Members table<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$attributes<\/strong> String <br><strong>$rec<\/strong> Object <br><strong>$column_name<\/strong> String <br><strong>$column_display_name<\/strong> String<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_members_list_table_row_fn($attributes, $rec, $column_name, $column_display_name) {\n  \/\/ Display content\n}\nadd_action('mepr_members_list_table_row', 'mepr_members_list_table_row_fn', 10, 4);<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr_products_permissions_tab\">mepr_products_permissions_tab<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content to the end of the membership's Permissions tab<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$product<\/strong> Membership Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_products_permissions_tab_fn($product) {\n  \/\/ Do what you need\n}\nadd_action('mepr_products_permissions_tab', 'mepr_products_permissions_tab_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-coupon-meta-boxes\">mepr-coupon-meta-boxes<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add a meta box to the Coupon edit page<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$coupon<\/strong> Coupon Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_coupon_meta_boxes_fn($coupon) {\n  \/\/ Do what you need\n}\nadd_action('mepr-coupon-meta-boxes', 'mepr_coupon_meta_boxes_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-coupon-save-meta\">mepr-coupon-save-meta<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Do what you need once a coupon is saving<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$coupon<\/strong> Coupon Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_coupon_save_meta_fn($coupon) {\n  \/\/ Do what you need\n}\nadd_action('mepr-coupon-save-meta', 'mepr_coupon_save_meta_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-coupon-admin-enqueue-script\">mepr-coupon-admin-enqueue-script<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Enqueue custom script on the Coupon edit page<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$hook<\/strong> String<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_coupon_admin_enqueue_script_fn($hook) {\n  \/\/ Do what you need\n}\nadd_action('mepr-coupon-admin-enqueue-script', 'mepr_coupon_admin_enqueue_script_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-account-is-active\">mepr-account-is-active<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Do what you need when a new transaction comes and is active<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$txn<\/strong> Transaction Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_account_is_active($txn) {\n  \/\/ Do what you need\n}\nadd_action('mepr-account-is-active', 'mepr_account_is_active');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr-account-is-inactive\">mepr-account-is-inactive<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Do what you need when a new transaction comes and is inactive<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$txn<\/strong> Transaction Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_account_is_inactive($txn) {\n  \/\/ First make sure they're not active on another membership first\n  $user = $txn->user();\n  $active_memberships = $user->active_product_subscriptions();\n  if(empty($active_memberships)) {\n    \/\/ User has no active memberships\n  } else {\n    \/\/ User is still active on a different membership\n  }\n}\nadd_action('mepr-account-is-inactive', 'mepr_account_is_inactive');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr_menu\">mepr_menu<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add a submenu after the Analytics submenu in the Dashboard<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_menu_fn() {\n  \/\/ Add HTML code here\n}\nadd_action('mepr_menu', 'mepr_menu_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr_enqueue_scripts\">mepr_enqueue_scripts<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Enqueue custom script on MemberPress front-end pages like the Membership page, Group page, or Account page<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$is_product_page<\/strong> Boolean <br><strong>$is_group_page<\/strong> Boolean <br><strong>$is_account_page<\/strong> Boolean<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_enqueue_scripts($is_product_page, $is_group_page, $is_account_page) {\n  \/\/ Do what you need\n}\nadd_action('mepr_enqueue_scripts', 'mepr_enqueue_scripts', 10, 3);<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mepr_payment_failure\">mepr_payment_failure<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Do what you need when a payment fails and an error comes up<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$txn<\/strong> Transaction Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mepr_payment_failure_fn($txn) {\n  \/\/ Do what you need\n}\nadd_action('mepr_payment_failure', 'mepr_payment_failure_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mpcs_classroom_preview_menu\">mpcs_classroom_preview_menu<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add a menu item at the end of the \u201cPreview as\u201d menu of courses pages with ReadyLaunch\u2122 enabled.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mpcs_classroom_preview_menu_fn() {\n  \/\/ Add HTML code here\n}\nadd_action('mpcs_classroom_preview_menu', 'mpcs_classroom_preview_menu_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mpcs_classroom_user_menu\">mpcs_classroom_user_menu<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add a menu item at the end of the user menu on course pages\u00a0with ReadyLaunch\u2122 enabled.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mpcs_classroom_user_menu_fn() {\n  \/\/ Add HTML code here\n}\nadd_action('mpcs_classroom_user_menu', 'mpcs_classroom_user_menu_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mpcs_classroom_start_header\">mpcs_classroom_start_header<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content before the header of course pages\u00a0with ReadyLaunch\u2122 enabled.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mpcs_classroom_start_header_fn() {\n  \/\/ Add HTML code here\n}\nadd_action('mpcs_classroom_start_header', 'mpcs_classroom_start_header_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mpcs_classroom_end_header\">mpcs_classroom_end_header<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content at the end of the header of course pages\u00a0with ReadyLaunch\u2122 enabled.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mpcs_classroom_end_header_fn() {\n  \/\/ Add HTML code here\n}\nadd_action('mpcs_classroom_end_header', 'mpcs_classroom_end_header_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mpcs_classroom_start_sidebar\">mpcs_classroom_start_sidebar<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content at the beginning of the sidebar of courses pages\u00a0with ReadyLaunch\u2122 enabled.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mpcs_classroom_start_sidebar_fn() {\n  \/\/ Add HTML code here\n}\nadd_action('mpcs_classroom_start_sidebar', 'mpcs_classroom_start_sidebar_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mpcs_classroom_end_sidebar\">mpcs_classroom_end_sidebar<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content at the end of the sidebar of courses pages\u00a0with ReadyLaunch\u2122 enabled.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mpcs_classroom_end_sidebar_fn() {\n  \/\/ Add HTML code here\n}\nadd_action('mpcs_classroom_end_sidebar', 'mpcs_classroom_end_sidebar_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mpcs_courses_footer\">mpcs_courses_footer<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content to courses and lessons footer\u00a0with ReadyLaunch\u2122 enabled.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mpcs_courses_footer_fn() {\n  \/\/ Add HTML code here\n}\nadd_action('mpcs_courses_footer', 'mpcs_courses_footer_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mpcs_classroom_start_instructor\">mpcs_classroom_start_instructor<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content before the Instructor subpage\u00a0with ReadyLaunch\u2122 enabled.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mpcs_classroom_start_instructor_fn() {\n  \/\/ Add HTML code here\n}\nadd_action('mpcs_classroom_start_instructor', 'mpcs_classroom_start_instructor_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mpcs_classroom_end_instructor\">mpcs_classroom_end_instructor<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content after the Instructor subpage\u00a0with ReadyLaunch\u2122 enabled.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mpcs_classroom_end_instructor_fn() {\n  \/\/ Add HTML code here\n}\nadd_action('mpcs_classroom_end_instructor', 'mpcs_classroom_end_instructor_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mpcs_started_course\">mpcs_started_course<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Do action when users start a course<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$user_progress<\/strong> User Progress Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mpcs_started_course_fn($user_progress) {<br>  \/\/ Do something here<br>}<br>add_action('mpcs_started_course', 'mpcs_started_course_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mpcs_completed_course\">mpcs_completed_course<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Do action when users complete a course<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$user_progress<\/strong> User Progress Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mpcs_completed_course_fn($user_progress) {<br>  \/\/ Do something here<br>}<br>add_action('mpcs_completed_course', 'mpcs_completed_course_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mpcs_started_section\">mpcs_started_section<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Do action when users start a section<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$user_progress<\/strong> User Progress Object <br><strong>$section_id<\/strong> Number<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mpcs_started_section_fn($user_progress, $section_id) {<br>  \/\/ Do something here<br>}<br>add_action('mpcs_started_section', 'mpcs_started_section_fn', 10, 2);<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mpcs_completed_section\">mpcs_completed_section<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Do action when users complete a section<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$user_progress<\/strong> User Progress Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mpcs_completed_section_fn($user_progress) {<br>  \/\/ Do something here<br>}<br>add_action('mpcs_completed_section', 'mpcs_completed_section_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mpcs_completed_lesson\">mpcs_completed_lesson<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Do action when users complete a lesson<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$user_progress<\/strong> User Progress Object<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mpcs_completed_lesson_fn($user_progress) {<br>  \/\/ Do something here<br>}<br>add_action('mpcs_completed_lesson', 'mpcs_completed_lesson_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mpcs_admin_general_options\">mpcs_admin_general_options<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Add content at the end of Courses options in WordPress Dashboard > MemberPress Settings<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function mpcs_admin_general_options_fn() {<br>  \/\/ Add HTML code here<br>}<br>add_action('mpcs_admin_general_options', 'mpcs_admin_general_options_fn');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mpca_add_sub_account\">mpca_add_sub_account<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Capture new sub-account added to corporate account event<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$transaction_id<\/strong> Number <br><strong>$parent_transaction_id<\/strong> Number<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function catch_adding_sub_account($transaction_id, $parent_transaction_id) {\n  \/\/ Do what you need\n}\nadd_action('mpca_add_sub_account', 'catch_adding_sub_account', 10, 2);<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mpca_remove_sub_account\">mpca_remove_sub_account<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Description<\/h4>\n\n\n\n<p>Capture sub-account removed from corporate account event<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Parameters<\/h4>\n\n\n\n<p><strong>$transaction_id<\/strong> Number <br><strong>$parent_transaction_id<\/strong> Number<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted has-background\" style=\"background-color:#f5f5f5\">function catch_removing_sub_account($transaction_id, $parent_transaction_id) {\n  \/\/ Do what you need\n}\nadd_action('mpca_remove_sub_account', 'catch_removing_sub_account', 10, 2);<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Here you can find the list of the most common action hooks divided into sections that you can find and use in MemberPress. If you want to learn more about hooks please check outActions and Filters in MemberPress article. Checkout Form Subscriptions & Transactions Account Page Login Page Options Page Memberships Page Coupons Page Miscellaneous [\u2026]<\/p>\n","protected":false},"author":62252,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"om_disable_all_campaigns":false,"_strive_editorial_status":"not-started","_strive_copy_of":0,"inline_featured_image":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","_FSMCFIC_featured_image_caption":"","_FSMCFIC_featured_image_nocaption":"","_FSMCFIC_featured_image_hide":"","_strive_checklists":"\"\"","_strive_active_checklist":"62291e2bb2422","footnotes":""},"ht-kb-category":[1316],"ht-kb-tag":[],"class_list":{"0":"post-62146","1":"ht_kb","2":"type-ht_kb","3":"status-publish","4":"format-standard","6":"ht_kb_category-developer-tools","7":"entry"},"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO Pro 4.9.5.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"Here you can find the list of the most common action hooks divided into sections that you can find and use in MemberPress. If you want to learn more about hooks please check outActions and Filters in MemberPress article. Checkout Form mepr-above-checkout-form mepr-checkout-before-name mepr-checkout-after-email-field mepr-checkout-after-password-fields mepr-checkout-before-coupon-field mepr-checkout-before-submit mepr-stripe-payment-form-before-name-field mepr-stripe-payment-form-card-field mepr-stripe-payment-form mepr-checkout-before-custom-fields mepr-checkout-after-custom-fields Subscriptions &amp; Transactions\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Nikola M\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/memberpress.com\/es\/docs\/action-hooks-in-memberpress\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO Pro (AIOSEO) 4.9.5.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"MemberPress\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Action Hooks in MemberPress | MemberPress\" \/>\n\t\t<meta property=\"og:description\" content=\"Here you can find the list of the most common action hooks divided into sections that you can find and use in MemberPress. If you want to learn more about hooks please check outActions and Filters in MemberPress article. Checkout Form mepr-above-checkout-form mepr-checkout-before-name mepr-checkout-after-email-field mepr-checkout-after-password-fields mepr-checkout-before-coupon-field mepr-checkout-before-submit mepr-stripe-payment-form-before-name-field mepr-stripe-payment-form-card-field mepr-stripe-payment-form mepr-checkout-before-custom-fields mepr-checkout-after-custom-fields Subscriptions &amp; Transactions\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/memberpress.com\/es\/docs\/action-hooks-in-memberpress\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/memberpress.com\/wp-content\/uploads\/2022\/10\/mp-icon-RGB_Icon-01.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/memberpress.com\/wp-content\/uploads\/2022\/10\/mp-icon-RGB_Icon-01.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1650\" \/>\n\t\t<meta property=\"og:image:height\" content=\"1275\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-02-13T14:04:55+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-05-21T12:09:45+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/memberpress\/\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@memberpress\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Action Hooks in MemberPress | MemberPress\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Here you can find the list of the most common action hooks divided into sections that you can find and use in MemberPress. If you want to learn more about hooks please check outActions and Filters in MemberPress article. Checkout Form mepr-above-checkout-form mepr-checkout-before-name mepr-checkout-after-email-field mepr-checkout-after-password-fields mepr-checkout-before-coupon-field mepr-checkout-before-submit mepr-stripe-payment-form-before-name-field mepr-stripe-payment-form-card-field mepr-stripe-payment-form mepr-checkout-before-custom-fields mepr-checkout-after-custom-fields Subscriptions &amp; Transactions\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/memberpress.com\/wp-content\/uploads\/2022\/10\/mp-icon-RGB_Icon-01.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/docs\\\/action-hooks-in-memberpress\\\/#article\",\"name\":\"Action Hooks in MemberPress | MemberPress\",\"headline\":\"Action Hooks in MemberPress\",\"author\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/blog\\\/author\\\/nikolacaseproof-com\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/memberpress.com\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/mp-icon-RGB_Icon-01.jpg\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/#articleImage\",\"width\":1650,\"height\":1275,\"caption\":\"memberpress logo icon\"},\"datePublished\":\"2024-02-13T09:04:55-05:00\",\"dateModified\":\"2024-05-21T08:09:45-04:00\",\"inLanguage\":\"es-ES\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/docs\\\/action-hooks-in-memberpress\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/docs\\\/action-hooks-in-memberpress\\\/#webpage\"},\"articleSection\":\"Developer Tools\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/docs\\\/action-hooks-in-memberpress\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/es#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/memberpress.com\\\/es\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/doc-categories\\\/advanced-topics\\\/#listItem\",\"name\":\"Advanced Topics\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/doc-categories\\\/advanced-topics\\\/#listItem\",\"position\":2,\"name\":\"Advanced Topics\",\"item\":\"https:\\\/\\\/memberpress.com\\\/es\\\/doc-categories\\\/advanced-topics\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/doc-categories\\\/developer-tools\\\/#listItem\",\"name\":\"Developer Tools\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/es#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/doc-categories\\\/developer-tools\\\/#listItem\",\"position\":3,\"name\":\"Developer Tools\",\"item\":\"https:\\\/\\\/memberpress.com\\\/es\\\/doc-categories\\\/developer-tools\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/docs\\\/action-hooks-in-memberpress\\\/#listItem\",\"name\":\"Action Hooks in MemberPress\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/doc-categories\\\/advanced-topics\\\/#listItem\",\"name\":\"Advanced Topics\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/docs\\\/action-hooks-in-memberpress\\\/#listItem\",\"position\":4,\"name\":\"Action Hooks in MemberPress\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/doc-categories\\\/developer-tools\\\/#listItem\",\"name\":\"Developer Tools\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/#organization\",\"name\":\"MemberPress\",\"description\":\"The All-In-One WordPress Membership Plugin\",\"url\":\"https:\\\/\\\/memberpress.com\\\/es\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/memberpress.com\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/mp-icon-RGB_Icon-01.jpg\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/docs\\\/action-hooks-in-memberpress\\\/#organizationLogo\",\"width\":1650,\"height\":1275,\"caption\":\"memberpress logo icon\"},\"image\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/docs\\\/action-hooks-in-memberpress\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/www.instagram.com\\\/memberpress\\\/\",\"https:\\\/\\\/www.pinterest.com\\\/memberpressplugin\\\/\",\"https:\\\/\\\/www.youtube.com\\\/c\\\/MemberPressPlugin\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/memberpress\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/blog\\\/author\\\/nikolacaseproof-com\\\/#author\",\"url\":\"https:\\\/\\\/memberpress.com\\\/es\\\/blog\\\/author\\\/nikolacaseproof-com\\\/\",\"name\":\"Nikola M\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/memberpress.com\\\/wp-content\\\/litespeed\\\/avatar\\\/1edf820c48f9c430f380efe81887b154.jpg?ver=1775141118\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/docs\\\/action-hooks-in-memberpress\\\/#webpage\",\"url\":\"https:\\\/\\\/memberpress.com\\\/es\\\/docs\\\/action-hooks-in-memberpress\\\/\",\"name\":\"Action Hooks in MemberPress | MemberPress\",\"description\":\"Here you can find the list of the most common action hooks divided into sections that you can find and use in MemberPress. If you want to learn more about hooks please check outActions and Filters in MemberPress article. Checkout Form mepr-above-checkout-form mepr-checkout-before-name mepr-checkout-after-email-field mepr-checkout-after-password-fields mepr-checkout-before-coupon-field mepr-checkout-before-submit mepr-stripe-payment-form-before-name-field mepr-stripe-payment-form-card-field mepr-stripe-payment-form mepr-checkout-before-custom-fields mepr-checkout-after-custom-fields Subscriptions & Transactions\",\"inLanguage\":\"es-ES\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/docs\\\/action-hooks-in-memberpress\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/blog\\\/author\\\/nikolacaseproof-com\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/blog\\\/author\\\/nikolacaseproof-com\\\/#author\"},\"datePublished\":\"2024-02-13T09:04:55-05:00\",\"dateModified\":\"2024-05-21T08:09:45-04:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/#website\",\"url\":\"https:\\\/\\\/memberpress.com\\\/es\\\/\",\"name\":\"MemberPress\",\"description\":\"The All-In-One WordPress Membership Plugin\",\"inLanguage\":\"es-ES\",\"publisher\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/es\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO Pro -->\r\n\t\t<title>Action Hooks in MemberPress | MemberPress<\/title>\n\n","aioseo_head_json":{"title":"Ganchos de acci\u00f3n en MemberPress | MemberPress","description":"Aqu\u00ed puedes encontrar la lista de los hooks de acci\u00f3n m\u00e1s comunes divididos en secciones que puedes encontrar y utilizar en MemberPress. Si quieres saber m\u00e1s sobre los hooks consulta el art\u00edculoAcciones y filtros en MemberPress. Formulario de pago mepr-above-checkout-form mepr-checkout-before-name mepr-checkout-after-email-field mepr-checkout-after-password-fields mepr-checkout-before-coupon-field mepr-checkout-before-submit mepr-stripe-payment-form-before-name-field mepr-stripe-payment-form-card-field mepr-stripe-payment-form mepr-checkout-before-custom-fields mepr-checkout-after-custom-fields Suscripciones y transacciones","canonical_url":"https:\/\/memberpress.com\/es\/docs\/action-hooks-in-memberpress\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/memberpress.com\/es\/docs\/action-hooks-in-memberpress\/#article","name":"Action Hooks in MemberPress | MemberPress","headline":"Action Hooks in MemberPress","author":{"@id":"https:\/\/memberpress.com\/es\/blog\/author\/nikolacaseproof-com\/#author"},"publisher":{"@id":"https:\/\/memberpress.com\/es\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/memberpress.com\/wp-content\/uploads\/2022\/10\/mp-icon-RGB_Icon-01.jpg","@id":"https:\/\/memberpress.com\/es\/#articleImage","width":1650,"height":1275,"caption":"memberpress logo icon"},"datePublished":"2024-02-13T09:04:55-05:00","dateModified":"2024-05-21T08:09:45-04:00","inLanguage":"es-ES","mainEntityOfPage":{"@id":"https:\/\/memberpress.com\/es\/docs\/action-hooks-in-memberpress\/#webpage"},"isPartOf":{"@id":"https:\/\/memberpress.com\/es\/docs\/action-hooks-in-memberpress\/#webpage"},"articleSection":"Developer Tools"},{"@type":"BreadcrumbList","@id":"https:\/\/memberpress.com\/es\/docs\/action-hooks-in-memberpress\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/memberpress.com\/es#listItem","position":1,"name":"Home","item":"https:\/\/memberpress.com\/es","nextItem":{"@type":"ListItem","@id":"https:\/\/memberpress.com\/es\/doc-categories\/advanced-topics\/#listItem","name":"Advanced Topics"}},{"@type":"ListItem","@id":"https:\/\/memberpress.com\/es\/doc-categories\/advanced-topics\/#listItem","position":2,"name":"Advanced Topics","item":"https:\/\/memberpress.com\/es\/doc-categories\/advanced-topics\/","nextItem":{"@type":"ListItem","@id":"https:\/\/memberpress.com\/es\/doc-categories\/developer-tools\/#listItem","name":"Developer Tools"},"previousItem":{"@type":"ListItem","@id":"https:\/\/memberpress.com\/es#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/memberpress.com\/es\/doc-categories\/developer-tools\/#listItem","position":3,"name":"Developer Tools","item":"https:\/\/memberpress.com\/es\/doc-categories\/developer-tools\/","nextItem":{"@type":"ListItem","@id":"https:\/\/memberpress.com\/es\/docs\/action-hooks-in-memberpress\/#listItem","name":"Action Hooks in MemberPress"},"previousItem":{"@type":"ListItem","@id":"https:\/\/memberpress.com\/es\/doc-categories\/advanced-topics\/#listItem","name":"Advanced Topics"}},{"@type":"ListItem","@id":"https:\/\/memberpress.com\/es\/docs\/action-hooks-in-memberpress\/#listItem","position":4,"name":"Action Hooks in MemberPress","previousItem":{"@type":"ListItem","@id":"https:\/\/memberpress.com\/es\/doc-categories\/developer-tools\/#listItem","name":"Developer Tools"}}]},{"@type":"Organization","@id":"https:\/\/memberpress.com\/es\/#organization","name":"MemberPress","description":"The All-In-One WordPress Membership Plugin","url":"https:\/\/memberpress.com\/es\/","logo":{"@type":"ImageObject","url":"https:\/\/memberpress.com\/wp-content\/uploads\/2022\/10\/mp-icon-RGB_Icon-01.jpg","@id":"https:\/\/memberpress.com\/es\/docs\/action-hooks-in-memberpress\/#organizationLogo","width":1650,"height":1275,"caption":"memberpress logo icon"},"image":{"@id":"https:\/\/memberpress.com\/es\/docs\/action-hooks-in-memberpress\/#organizationLogo"},"sameAs":["https:\/\/www.instagram.com\/memberpress\/","https:\/\/www.pinterest.com\/memberpressplugin\/","https:\/\/www.youtube.com\/c\/MemberPressPlugin","https:\/\/www.linkedin.com\/company\/memberpress\/"]},{"@type":"Person","@id":"https:\/\/memberpress.com\/es\/blog\/author\/nikolacaseproof-com\/#author","url":"https:\/\/memberpress.com\/es\/blog\/author\/nikolacaseproof-com\/","name":"Nikola M","image":{"@type":"ImageObject","url":"https:\/\/memberpress.com\/wp-content\/litespeed\/avatar\/1edf820c48f9c430f380efe81887b154.jpg?ver=1775141118"}},{"@type":"WebPage","@id":"https:\/\/memberpress.com\/es\/docs\/action-hooks-in-memberpress\/#webpage","url":"https:\/\/memberpress.com\/es\/docs\/action-hooks-in-memberpress\/","name":"Action Hooks in MemberPress | MemberPress","description":"Here you can find the list of the most common action hooks divided into sections that you can find and use in MemberPress. If you want to learn more about hooks please check outActions and Filters in MemberPress article. Checkout Form mepr-above-checkout-form mepr-checkout-before-name mepr-checkout-after-email-field mepr-checkout-after-password-fields mepr-checkout-before-coupon-field mepr-checkout-before-submit mepr-stripe-payment-form-before-name-field mepr-stripe-payment-form-card-field mepr-stripe-payment-form mepr-checkout-before-custom-fields mepr-checkout-after-custom-fields Subscriptions & Transactions","inLanguage":"es-ES","isPartOf":{"@id":"https:\/\/memberpress.com\/es\/#website"},"breadcrumb":{"@id":"https:\/\/memberpress.com\/es\/docs\/action-hooks-in-memberpress\/#breadcrumblist"},"author":{"@id":"https:\/\/memberpress.com\/es\/blog\/author\/nikolacaseproof-com\/#author"},"creator":{"@id":"https:\/\/memberpress.com\/es\/blog\/author\/nikolacaseproof-com\/#author"},"datePublished":"2024-02-13T09:04:55-05:00","dateModified":"2024-05-21T08:09:45-04:00"},{"@type":"WebSite","@id":"https:\/\/memberpress.com\/es\/#website","url":"https:\/\/memberpress.com\/es\/","name":"MemberPress","description":"The All-In-One WordPress Membership Plugin","inLanguage":"es-ES","publisher":{"@id":"https:\/\/memberpress.com\/es\/#organization"}}]},"og:locale":"es_ES","og:site_name":"MemberPress","og:type":"article","og:title":"Action Hooks in MemberPress | MemberPress","og:description":"Here you can find the list of the most common action hooks divided into sections that you can find and use in MemberPress. If you want to learn more about hooks please check outActions and Filters in MemberPress article. Checkout Form mepr-above-checkout-form mepr-checkout-before-name mepr-checkout-after-email-field mepr-checkout-after-password-fields mepr-checkout-before-coupon-field mepr-checkout-before-submit mepr-stripe-payment-form-before-name-field mepr-stripe-payment-form-card-field mepr-stripe-payment-form mepr-checkout-before-custom-fields mepr-checkout-after-custom-fields Subscriptions &amp; Transactions","og:url":"https:\/\/memberpress.com\/es\/docs\/action-hooks-in-memberpress\/","og:image":"https:\/\/memberpress.com\/wp-content\/uploads\/2022\/10\/mp-icon-RGB_Icon-01.jpg","og:image:secure_url":"https:\/\/memberpress.com\/wp-content\/uploads\/2022\/10\/mp-icon-RGB_Icon-01.jpg","og:image:width":1650,"og:image:height":1275,"article:published_time":"2024-02-13T14:04:55+00:00","article:modified_time":"2024-05-21T12:09:45+00:00","article:publisher":"https:\/\/www.facebook.com\/memberpress\/","twitter:card":"summary_large_image","twitter:site":"@memberpress","twitter:title":"Action Hooks in MemberPress | MemberPress","twitter:description":"Here you can find the list of the most common action hooks divided into sections that you can find and use in MemberPress. If you want to learn more about hooks please check outActions and Filters in MemberPress article. Checkout Form mepr-above-checkout-form mepr-checkout-before-name mepr-checkout-after-email-field mepr-checkout-after-password-fields mepr-checkout-before-coupon-field mepr-checkout-before-submit mepr-stripe-payment-form-before-name-field mepr-stripe-payment-form-card-field mepr-stripe-payment-form mepr-checkout-before-custom-fields mepr-checkout-after-custom-fields Subscriptions &amp; Transactions","twitter:image":"https:\/\/memberpress.com\/wp-content\/uploads\/2022\/10\/mp-icon-RGB_Icon-01.jpg"},"aioseo_meta_data":{"post_id":"62146","title":null,"description":null,"keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"seo_analyzer_scan_date":"2025-10-09 21:55:22","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"open_ai":"{\"title\":{\"suggestions\":[],\"usage\":0},\"description\":{\"suggestions\":[],\"usage\":0}}","ai":null,"created":"2024-02-13 14:04:55","updated":"2026-03-03 14:53:00"},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t<a href=\"https:\/\/memberpress.com\/es\" title=\"Home\">Home<\/a>\n<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t<a href=\"https:\/\/memberpress.com\/es\/doc-categories\/advanced-topics\/\" title=\"Advanced Topics\">Advanced Topics<\/a>\n<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t<a href=\"https:\/\/memberpress.com\/es\/doc-categories\/developer-tools\/\" title=\"Developer Tools\">Developer Tools<\/a>\n<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\tAction Hooks in MemberPress\n<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/memberpress.com\/es"},{"label":"Advanced Topics","link":"https:\/\/memberpress.com\/es\/doc-categories\/advanced-topics\/"},{"label":"Developer Tools","link":"https:\/\/memberpress.com\/es\/doc-categories\/developer-tools\/"},{"label":"Action Hooks in MemberPress","link":"https:\/\/memberpress.com\/es\/docs\/action-hooks-in-memberpress\/"}],"_links":{"self":[{"href":"https:\/\/memberpress.com\/es\/wp-json\/wp\/v2\/ht-kb\/62146","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/memberpress.com\/es\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/memberpress.com\/es\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/memberpress.com\/es\/wp-json\/wp\/v2\/users\/62252"}],"replies":[{"embeddable":true,"href":"https:\/\/memberpress.com\/es\/wp-json\/wp\/v2\/comments?post=62146"}],"version-history":[{"count":0,"href":"https:\/\/memberpress.com\/es\/wp-json\/wp\/v2\/ht-kb\/62146\/revisions"}],"wp:attachment":[{"href":"https:\/\/memberpress.com\/es\/wp-json\/wp\/v2\/media?parent=62146"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/memberpress.com\/es\/wp-json\/wp\/v2\/ht-kb-category?post=62146"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/memberpress.com\/es\/wp-json\/wp\/v2\/ht-kb-tag?post=62146"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}