Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion includes/data-events/connectors/class-activecampaign.php
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public static function register_handlers() {
* @param string $context Context of the update for logging purposes.
*/
protected static function put( $contact, $context ) {
$master_list_id = Reader_Activation::get_setting( 'active_campaign_master_list' );
$master_list_id = Reader_Activation::get_esp_master_list_id( 'active_campaign' );
if ( ! $master_list_id ) {
return;
}
Expand Down
16 changes: 1 addition & 15 deletions includes/data-events/connectors/class-mailchimp.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,20 +47,6 @@ public static function register_handlers() {
}
}

/**
* Get audience ID.
*
* @return string|bool Audience ID or false if not set.
*/
private static function get_audience_id() {
$audience_id = Reader_Activation::get_setting( 'mailchimp_audience_id' );
/** Attempt to use list ID from "Mailchimp for WooCommerce" */
if ( ! $audience_id && function_exists( 'mailchimp_get_list_id' ) ) {
$audience_id = \mailchimp_get_list_id();
}
return ! empty( $audience_id ) ? $audience_id : false;
}

/**
* Get default reader MailChimp status.
*
Expand All @@ -83,7 +69,7 @@ private static function get_default_reader_status() {
* @return array|WP_Error response body or error.
*/
protected static function put( $contact, $context ) {
$audience_id = self::get_audience_id();
$audience_id = Reader_Activation::get_esp_master_list_id( 'mailchimp' );
if ( ! $audience_id ) {
return;
}
Expand Down
29 changes: 29 additions & 0 deletions includes/reader-activation/class-reader-activation.php
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,35 @@ public static function is_esp_configured() {
return false;
}

/**
* Get the master list ID for the ESP.
*
* @param string $provider Optional ESP provider. Defaults to the configured ESP.
*
* @return string|bool Master list ID or false if not set or not available.
*/
public static function get_esp_master_list_id( $provider = '' ) {
if ( ! self::is_esp_configured() ) {
return false;
}
if ( empty( $provider ) ) {
$provider = \Newspack_Newsletters::service_provider();
}
switch ( $provider ) {
case 'active_campaign':
return self::get_setting( 'active_campaign_master_list' );
case 'mailchimp':
$audience_id = self::get_setting( 'mailchimp_audience_id' );
/** Attempt to use list ID from "Mailchimp for WooCommerce" */
if ( ! $audience_id && function_exists( 'mailchimp_get_list_id' ) ) {
$audience_id = \mailchimp_get_list_id();
}
return ! empty( $audience_id ) ? $audience_id : false;
default:
return false;
}
}

/**
* Get the newsletter lists that should be rendered during registration.
*
Expand Down