WPIntell

Source evidence

Display more errors from mailster

Mailster Contact Form 7 · review · 2024-11-09T11:47:00+00:00

praisesentiment
mediumseverity
0.56relevance
1replies
Evidence linked to opportunitycommercial context

Proof Health

Open evidence

Commercial opportunities need traceable source links before they are treated as build-worthy.

6 / 36 rows with source links

16.7% of this page's analysis has direct source links.

0 build-decision rows missing links

0 rows here require auditable proof before promotion.

30 rows with no attached evidence

0 rows have source counts but still need direct links.

Conversation

review · 5 stars
xiaoxian666 unresolved
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(); } } Hi There! Thanks for your effort. Can you open a pull request on our github here so we can take a look into this: https://github.com/everpress-co/mailster-contact-form-7 Thanks!

Comments

1 shown
EverPress 2024-11-11T13:44:00+00:00

Hi There! Thanks for your effort. Can you open a pull request on our github here so we can take a look into this: https://github.com/everpress-co/mailster-contact-form-7 Thanks!