initialize_local_feeds_config( $locations ); } /** * Prepare feed configurations. * * @since 1.0.10 * @param array $locations Array of location to generate the feed files for. */ private function initialize_local_feeds_config( $locations ) { $feed_ids = Pinterest_For_Woocommerce()::get_data( 'local_feed_ids' ); if ( empty( $feed_ids ) ) { try { $remote_feed_id = Feeds::maybe_remote_feed(); $feed_ids = array( Pinterest_For_Woocommerce()::get_base_country() => $remote_feed_id, ); } catch ( FeedNotFoundException $e ) { $feed_ids = array(); } } foreach ( $locations as $location ) { if ( array_key_exists( $location, $feed_ids ) ) { continue; } $feed_ids[ $location ] = wp_generate_password( 6, false, false ); } // Store generated ids for each location. Pinterest_For_Woocommerce()::save_data( 'local_feed_ids', $feed_ids ); $file_name_base = trailingslashit( wp_get_upload_dir()['basedir'] ) . PINTEREST_FOR_WOOCOMMERCE_LOG_PREFIX . '-'; $url_base = trailingslashit( wp_get_upload_dir()['baseurl'] ) . PINTEREST_FOR_WOOCOMMERCE_LOG_PREFIX . '-'; array_walk( $feed_ids, function ( &$id ) use ( $file_name_base, $url_base ) { $id = array( 'feed_id' => $id, 'feed_file' => "{$file_name_base}{$id}.xml", 'tmp_file' => "{$file_name_base}{$id}-tmp.xml", 'feed_url' => "{$url_base}{$id}.xml", ); } ); $this->feeds_configurations = $feed_ids; } /** * Cleanup local feed configs. */ public static function deregister() { Pinterest_For_Woocommerce()::save_data( 'local_feed_ids', false ); self::$instance = null; } /** * Fetch local feed configurations; */ public function get_configurations() { return $this->feeds_configurations; } }