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
Screenshots
Installation
- Upload the entire
mailster-contact-form-7
folder to the/wp-content/plugins/
directory - Activate the plugin through the ‘Plugins’ menu in WordPress
- Create a new Contact Form 7 form. Provide at least an email field
- Save your form
- Select The Mailster tab and configure the form for Mailster
Reviews
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(); } }
royalehemp
January 13, 2019
Search around for good a good contact form for mailster an found this plugin.Works perfect.
Contributors & Developers
“Mailster Contact Form 7” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Mailster Contact Form 7” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
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