/
var
/
www
/
barefootlaw.org
/
wp-content
/
plugins
/
mailchimp-for-wp
/
includes
/
admin
/
migrations
/
Upload File
HOME
<?php defined( 'ABSPATH' ) or exit; /** * @ignore * @return object */ function _mc4wp_400_find_grouping_for_interest_category( $groupings, $interest_category ) { foreach ( $groupings as $grouping ) { // cast to stdClass because of missing class $grouping = (object) (array) $grouping; if ( $grouping->name === $interest_category->title ) { return $grouping; } } return null; } /** * @ignore * @return object */ function _mc4wp_400_find_group_for_interest( $groups, $interest ) { foreach ( $groups as $group_id => $group_name ) { if ( $group_name === $interest->name ) { return (object) array( 'name' => $group_name, 'id' => $group_id, ); } } return null; } // in case the migration is _very_ late to the party if ( ! class_exists( 'MC4WP_API_V3' ) ) { return; } $options = get_option( 'mc4wp', array() ); if ( empty( $options['api_key'] ) ) { return; } // get current state from transient $lists = get_transient( 'mc4wp_mailchimp_lists_fallback' ); if ( empty( $lists ) ) { return; } @set_time_limit( 600 ); $api_v3 = new MC4WP_API_V3( $options['api_key'] ); $map = array(); foreach ( $lists as $list ) { // cast to stdClass because of missing classes $list = (object) (array) $list; // no groupings? easy! if ( empty( $list->groupings ) ) { continue; } // fetch (new) interest categories for this list try { $interest_categories = $api_v3->get_list_interest_categories( $list->id ); } catch ( MC4WP_API_Exception $e ) { continue; } foreach ( $interest_categories as $interest_category ) { // compare interest title with grouping name, if it matches, get new id. $grouping = _mc4wp_400_find_grouping_for_interest_category( $list->groupings, $interest_category ); if ( ! $grouping ) { continue; } $groups = array(); try { $interests = $api_v3->get_list_interest_category_interests( $list->id, $interest_category->id ); } catch ( MC4WP_API_Exception $e ) { continue; } foreach ( $interests as $interest ) { $group = _mc4wp_400_find_group_for_interest( $grouping->groups, $interest ); if ( $group ) { $groups[ $group->id ] = $interest->id; $groups[ $group->name ] = $interest->id; } } $map[ (string) $grouping->id ] = array( 'id' => $interest_category->id, 'groups' => $groups, ); } } if ( ! empty( $map ) ) { update_option( 'mc4wp_groupings_map', $map ); }