ANON_MAILCHIMP_CONTACT_ADDED
Class MAILCHIMP_CONTACT_ADDED
Source Source
File: src/integrations/mailchimp/triggers/anon-mailchimp-contact-added.php
class ANON_MAILCHIMP_CONTACT_ADDED { use Recipe\Triggers; /** * Trigger code. * * @var string */ const TRIGGER_CODE = 'ANON_MAILCHIMP_CONTACT_ADDED'; /** * Trigger meta. * * @var string */ const TRIGGER_META = 'ANON_MAILCHIMP_CONTACT_ADDED_META'; /** * Set up Automator trigger constructor. */ public function __construct() { $this->setup_trigger(); } /** * Define and register the trigger by pushing it into the Automator object */ public function setup_trigger() { $this->set_integration( 'MAILCHIMP' ); $this->set_trigger_code( self::TRIGGER_CODE ); $this->set_trigger_meta( self::TRIGGER_META ); $this->set_trigger_type( 'anonymous' ); $this->set_is_login_required( false ); $this->set_is_pro( false ); /* Translators: Trigger sentence */ $this->set_sentence( sprintf( /* Translators: Trigger sentence */ esc_html__( 'A contact is added to {{an audience:%1$s}}', 'uncanny-automator' ), $this->get_trigger_meta() ) ); /* Translators: Trigger sentence */ $this->set_readable_sentence( esc_html__( 'A contact is added to {{an audience}}', 'uncanny-automator' ) ); // Non-active state sentence to show // Which do_action() fires this trigger. $this->add_action( 'automator_mailchimp_webhook_received_subscribe' ); // Set the options field group. $this->set_options_callback( array( $this, 'get_trigger_option_fields' ) ); // Only register the trigger if mailchimp webhook is enabled inside the settings. if ( get_option( 'uap_mailchimp_enable_webhook', false ) ) { $this->register_trigger(); } } /** * The set_options_callback method callback function. * * @return array the list of option group. */ public function get_trigger_option_fields() { return array( 'options_group' => array( $this->get_trigger_meta() => array( Automator()->helpers->recipe->mailchimp->options->get_all_lists( esc_html__( 'Audience', 'uncanny-automator' ), $this->get_trigger_meta(), array( 'has_any' => true, ) ), ), ), ); } public function validate_trigger( ...$args ) { return Automator()->helpers->recipe->mailchimp->options->validate_trigger(); } /** * Trigger conditions. * * Only run the trigger if audience is set to 'Any' or if audience id is equals to the one set in the recipe. * * @return void. */ protected function trigger_conditions( $args ) { // If args is empty, bail. if ( ! is_array( $args ) ) { return; } // First element of args is the MailChimp event data. $event = $args[0]; // Match 'Any audience' condition. $this->do_find_any( true ); // Match specific condition. $this->do_find_this( $this->get_trigger_meta() ); // Find in list id. $this->do_find_in( array( $event['data']['list_id'] ) ); Automator()->helpers->recipe->mailchimp->options->log( '[3/3. Trigger conditions]. Setting trigger conditions. Will run if audience is set to `Any` or if audience matches the selected audience value. Check recipe log.' ); } public function prepare_to_run( $data ) { $this->set_conditional_trigger( true ); } public function do_continue_anon_trigger( ...$args ) { return true; } }
Expand full source code Collapse full source code View on Github
Methods Methods
- __construct — Set up Automator trigger constructor.
- do_continue_anon_trigger
- get_trigger_option_fields — The set_options_callback method callback function.
- prepare_to_run
- setup_trigger — Define and register the trigger by pushing it into the Automator object
- trigger_conditions — Trigger conditions.
- validate_trigger