Mailster Contact Form 7

Plugin Banner

Mailster Contact Form 7

by EverPress

Download
Description

Create your Signup Forms with Contact Form 7 and allow users to signup to your newsletter.

This Plugin requires Mailster Newsletter Plugin for WordPress

Additional Info

This Plugin requires Mailster Newsletter Plugin for WordPress

  1. Upload the entire mailster-contact-form-7 folder to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Create a new Contact Form 7 form. Provide at least an email field
  4. Save your form
  5. Select The Mailster tab and configure the form for Mailster

confirmed status not working

By hajo804 on January 21, 2025

If a user subscribes to the contact form 7 form with this plugin, they will be added to the list, but their status will not be automatically confirmed. "Double-opt-In" is turned off, meaning they do not have to confirm their unsubscribe, but the user will still not be active. Is there another setting that I missed, or is the plugin unable to make the user an active subscriber immediately?

Display more errors from mailster

By xiaoxian666 on November 9, 2024

Hi, I improved the validate and add_subscriber function in classes/contactform.class.php to allow contact from7 to display more errors from mailster instead of just error messages for duplicate subscribers.

	public function validate( $result, $tags ) {

if ( ! $result->is_valid() ) {
return $result;
}

if ( ! function_exists( 'mailster' ) ) {
return $result;
}

$submission = WPCF7_Submission::get_instance();

if ( ! $submission || ! $posted_data = $submission->get_posted_data() ) {
return $result;
}

$form = WPCF7_ContactForm::get_current();

$properties = $form->get_properties();

// no Mailster settings
if ( ! isset( $properties['mailster'] ) ) {
return $result;
}
$properties = $properties['mailster'];

// not enabled
if ( ! $properties['enabled'] ) {
return $result;
}

// checkbox defined but not checked
if ( isset( $properties['checkbox'] ) && $properties['checkbox'] && empty( $posted_data[ $properties['checkboxfield'] ][0] ) ) {
return $result;
}

$this->userdata = array();
$tag_keys = array_flip( array_filter( wp_list_pluck( $tags, 'name' ) ) );

foreach ( $properties['fields'] as $field => $tag ) {
$this->userdata[ $field ] = is_array( $posted_data[ $tag ] ) ? $posted_data[ $tag ][0] : $posted_data[ $tag ];
}

$this->userdata['status'] = $properties['doubleoptin'] ? 0 : 1;

if ( isset( $properties['gdpr_timestamp'] ) && $properties['gdpr_timestamp'] ) {
$this->userdata['gdpr'] = time();
}

$this->userdata = apply_filters( 'mailster_verify_subscriber', $this->userdata );

if ( is_wp_error( $this->userdata ) ) {

$result->invalidate( $tags[ $tag_keys[ $properties['fields'][ $this->userdata->get_error_code() ] ] ], $this->userdata->get_error_message() );
return $result;
}

$overwrite = $properties['overwrite'];




if ( ! $overwrite && mailster( 'subscribers' )->get_by_mail( $this->userdata['email'] ) ) {
$error_message = isset( $properties['error_message'] ) ? $properties['error_message'] : __( 'You are already registered!', 'mailster-cf7' );
$result->invalidate( $tags[ $tag_keys[ $properties['fields']['email'] ] ], $error_message );
return $result;
}
//new add+
$add_message= $this->add_subscriber(null);
if(!empty($add_message)) {
$result->invalidate( $tags[ $tag_keys[ $properties['fields']['email'] ] ], $add_message );
return $result;
}
// add_action( 'wpcf7_mail_sent', array( $this, 'add_subscriber' ) );
return $result;

}


/**
*
*
* @param unknown $contact_form
*/
public function add_subscriber( $contact_form ) {

$form = WPCF7_ContactForm::get_current();

$properties = $form->get_properties();
$properties = $properties['mailster'];

$list_ids = isset( $properties['lists'] ) ? (array) $properties['lists'] : null;
$overwrite = 1 == $properties['overwrite'];
$merge = 3 == $properties['overwrite'];

// add subscriber
$subscriber_id = mailster( 'subscribers' )->add( $this->userdata, $overwrite || $merge, $merge );

// no error
if ( ! is_wp_error( $subscriber_id ) && $list_ids ) {
mailster( 'subscribers' )->assign_lists( $subscriber_id, $list_ids );
return '';
}else {
return $subscriber_id->get_error_message();
}
}

Excellent Plugin

By royalehemp on January 13, 2019

Search around for good a good contact form for mailster an found this plugin.Works perfect.

Excellent

By tfs (t24s) on September 19, 2017

Does exactly what it's supposed to do. Smooth integration with CF7, great support.

1.6.0

  • added:option to use acceptance tags for conditional check
  • fixed: support for WordPress 6.8

1.5.1

  • fix for WordPress 6.1

1.5

  • fixed: support for CF7 5.5.3

1.4

  • added: options to store GDPR timestamp

1.3.1

  • fixed: removed deprecated method

1.3

  • new option: ‘Always overwrite and keep existing data’ to merge data on existing subscribers.

1.2

  • updated file structure
  • added translatable strings

1.1

  • improved: Subscribers are added only if the form has been submitted successful
  • added: new option to disable error message for existing subscribers
  • added: new option to define error message.

1.0.1

  • fixed: PHP Warning

1.0

  • initial release
Back to top