&& ! empty( $data['LNAME'] ) ) { $data['NAME'] = sprintf( '%s %s', $data['FNAME'], $data['LNAME'] ); } return $data; } /** * Gets the "email type" for new subscribers. * * Possible return values are either "html" or "text" * * @access public * @since 3.0 * * @return string */ function mc4wp_get_email_type() { $email_type = 'html'; /** * Filters the email type preference for this new subscriber. * * @param string $email_type */ $email_type = (string) apply_filters( 'mc4wp_email_type', $email_type ); return $email_type; } /** * * @ignore * @return bool */ function _mc4wp_use_sslverify() { // Disable for all transports other than CURL if ( ! function_exists( 'curl_version' ) ) { return false; } $curl = curl_version(); // Disable if OpenSSL is not installed if ( empty( $curl['ssl_version'] ) ) { return false; } // Disable if on WP 4.4, see https://core.trac.wordpress.org/ticket/34935 if ( $GLOBALS['wp_version'] === '4.4' ) { return false; } return true; } /** * This will replace the first half of a string with "*" characters. * * @param string $string * @return string */ function mc4wp_obfuscate_string( $string ) { $length = strlen( $string ); $obfuscated_length = ceil( $length / 2 ); $string = str_repeat( '*', $obfuscated_length ) . substr( $string, $obfuscated_length ); return $string; } /** * @internal * @ignore */ function _mc4wp_obfuscate_email_addresses_callback( $m ) { $one = $m[1] . str_repeat( '*', strlen( $m[2] ) ); $two = $m[3] . str_repeat( '*', strlen( $m[4] ) ); $three = $m[5]; return sprintf( '%s@%s.%s', $one, $two, $three ); } /** * Obfuscates email addresses in a string. * * @param $string String possibly containing email address * @return string */ function mc4wp_obfuscate_email_addresses( $string ) { return preg_replace_callback( '/([\w\.]{1,4})([\w\.]*)\@(\w{1,2})(\w*)\.(\w+)/', '_mc4wp_obfuscate_email_addresses_callback', $string ); } /** * Refreshes Mailchimp lists. This can take a while if the connected Mailchimp account has many lists. * * @return void */ function mc4wp_refresh_mailchimp_lists() { $mailchimp = new MC4WP_MailChimp(); $mailchimp->refresh_lists(); } /** * Get element from array, allows for dot notation eg: "foo.bar" * * @param array $array * @param string $key * @param mixed $default * @return mixed */ function mc4wp_array_get( $array, $key, $default = null ) { if ( is_null( $key ) ) { return $array; } if ( isset( $array[ $key ] ) ) { return $array[ $key ]; } foreach ( explode( '.', $key ) as $segment ) { if ( ! is_array( $array ) || ! array_key_exists( $segment, $array ) ) { return $default; } $array = $array[ $segment ]; } return $array; }