Back to Community

How to Customize Your MailPoet Manage Subscription Page with Code

15 threads Sep 16, 2025

Content

Many MailPoet users want to move beyond the plugin's default settings to create a truly bespoke experience for their subscribers. A common request is to customize the layout and content of the Manage Subscription page, which is where users control their email preferences. While some changes can be made through the admin interface, more advanced modifications often require custom code.

Why Customize the Manage Subscription Page?

The default Manage Subscription page, accessible via the [mailpoet_manage_subscription] shortcode, serves a functional purpose. However, you might want to:

  • Re-order custom fields instead of having them always appear at the bottom.
  • Change or remove the default instructional text (e.g., ‘Need to change your email address?...’).
  • Hide specific elements like the "Status" dropdown or list selection checkboxes.
  • Add new information or descriptions to the list selections.
  • Translate the page's text into another language.

Common Customization Methods

Based on community discussions, here are the most common approaches to customizing this page.

1. Using the Official Custom Page Method

The recommended method from the MailPoet team is to create a custom WordPress page and use it as your Manage Subscription page. This approach is more stable and less likely to break with plugin updates.

  1. Create a new WordPress page.
  2. Add the [mailpoet_manage_subscription] shortcode to it.
  3. In your MailPoet settings, set this new page as your official Manage Subscription page.
  4. You can now add any custom HTML, text, or styling around the shortcode using your theme's editor or a page builder.

This method is ideal for changing the overall page template, adding introductory text, or wrapping the form in your site's specific styling.

2. Using PHP Filters for Advanced Control

For more granular control over the form fields themselves, you need to use PHP filters. This code must be added to your theme's functions.php file or, more safely, using a code snippets plugin.

Example: Removing Fields
To remove specific fields like the "Status" dropdown, you can use the mailpoet_manage_subscription_page_form_fields filter.

add_filter( 'mailpoet_manage_subscription_page_form_fields', 'mp_remove_manage_fields', 10, 1);
function mp_remove_manage_fields( $form ) {
  unset($form[2]); // Status Dropdown
  unset($form[4]); // List Selection Checkboxes
  return $form;
}

Important Note: The index numbers (e.g., 2, 4) correspond to the field's position in the form array. These indexes can change between plugin versions, so this method may require maintenance. If the code doesn't work, the index values have likely changed.

Example: Editing Introductory Text
To change the default text on the page, you would need to locate the specific translation strings or output functions and override them with similar filters, which is a complex development task.

3. Using CSS for Visual Tweaks

For simple visual changes, like hiding an element, you can use Custom CSS in your theme's customizer or additional CSS panel.

/* Example to hide the 'Edit your profile' text (selector may need adjustment) */
form.mailpoet-manage-subscription p.mailpoet_paragraph span {
  display: none;
}

CSS is often the easiest solution but can be fragile. If the plugin's HTML structure changes, your CSS selectors might stop working, requiring you to update them.

Important Considerations and Limitations

  • Complexity: These customizations, especially using PHP, fall outside of standard user support and require comfort with code.
  • Updates: Custom code may break after a major MailPoet update if the underlying structure of the Manage Subscription page changes.
  • Translation: For multi-language sites, translating text modified by code may require integration with a translation plugin like WPML.
  • No Built-in Reordering: There is currently no built-in way to re-order custom fields on the subscriber profile page in the admin panel. This would also require custom code.

For most users, creating a custom page is the most sustainable approach. For those who need deeper integration, the provided code snippets offer a starting point, but be prepared for potential troubleshooting.

Related Support Threads Support