Skip to content

Commit

Permalink
Merge pull request #26 from mailchimp/feat/php-compat
Browse files Browse the repository at this point in the history
PHP Compat to 8.3
  • Loading branch information
dkotter authored Jun 11, 2024
2 parents ddcdcf7 + 7e675a0 commit 00b1321
Show file tree
Hide file tree
Showing 9 changed files with 28 additions and 21 deletions.
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
],
"prefer-stable": true,
"require": {
"php": ">=5.6"
"php": ">=7.0"
},
"require-dev": {
"10up/phpcs-composer": "^3.0",
Expand Down
4 changes: 2 additions & 2 deletions composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions lib/mailchimp/mailchimp.php
Original file line number Diff line number Diff line change
Expand Up @@ -141,8 +141,9 @@ public function post( $endpoint, $body, $method = 'POST' ) {
return new WP_Error( 'mc-subscribe-error', $request->get_error_message() );
}

$body = json_decode( $request['body'], true );
$merges = get_option( 'mc_merge_vars' );
$body = json_decode( $request['body'], true );
$merges = get_option( 'mc_merge_vars' );
$field_name = '';
foreach ( $merges as $merge ) {
if ( empty( $body['errors'] ) ) {
// Email address doesn't come back from the API, so if something's wrong, it's that.
Expand Down
17 changes: 11 additions & 6 deletions mailchimp.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
* Description: Add a Mailchimp signup form widget to your WordPress site.
* Version: 1.5.8
* Requires at least: 2.8
* Requires PHP: 5.6
* Requires PHP: 7.0
* PHP tested up to: 8.3
* Author: Mailchimp
* Author URI: https://mailchimp.com/
* License: GPL-2.0-or-later
Expand Down Expand Up @@ -69,7 +70,7 @@ function mailchimp_sf_plugin_init() {

// Remove Sopresto check. If user does not have API key, make them authenticate.

if ( get_option( 'mc_list_id' ) && get_option( 'mc_merge_field_migrate' ) !== true && mailchimp_sf_get_api() !== false ) {
if ( get_option( 'mc_list_id' ) && get_option( 'mc_merge_field_migrate' ) !== '1' && mailchimp_sf_get_api() !== false ) {
mailchimp_sf_update_merge_fields();
}

Expand Down Expand Up @@ -126,7 +127,7 @@ function mailchimp_sf_load_resources() {
wp_enqueue_script( 'jquery-ui-datepicker' );
}

if ( get_option( 'mc_nuke_all_styles' ) !== true ) {
if ( get_option( 'mc_nuke_all_styles' ) !== '1' ) {
wp_enqueue_style( 'mailchimp_sf_main_css', home_url( '?mcsf_action=main_css&ver=' . MCSF_VER, 'relative' ), array(), MCSF_VER );
wp_enqueue_style( 'mailchimp_sf_ie_css', MCSF_URL . 'css/ie.css', array(), MCSF_VER );
global $wp_styles;
Expand Down Expand Up @@ -644,6 +645,10 @@ function mailchimp_sf_change_list_if_necessary() {
// we *could* support paging, but few users have that many lists (and shouldn't)
$lists = $api->get( 'lists', 100, array( 'fields' => 'lists.id,lists.name,lists.email_type_option' ) );

if ( ! isset( $lists['lists'] ) || is_wp_error( $lists['lists'] ) ) {
return;
}

$lists = $lists['lists'];

if ( is_array( $lists ) && ! empty( $lists ) && isset( $_POST['mc_list_id'] ) ) {
Expand Down Expand Up @@ -703,7 +708,7 @@ function mailchimp_sf_change_list_if_necessary() {
*
* @param string $list_id List ID
* @param bool $new_list Whether this is a new list
* @return void
* @return array
*/
function mailchimp_sf_get_merge_vars( $list_id, $new_list ) {
$api = mailchimp_sf_get_api();
Expand Down Expand Up @@ -984,7 +989,7 @@ function mailchimp_sf_merge_submit( $mv ) {
$opt_val = isset( $_POST[ $opt ] ) ? map_deep( stripslashes_deep( $_POST[ $opt ] ), 'sanitize_text_field' ) : '';

// Handle phone number logic
if ( 'phone' === $mv_var['type'] && 'US' === $mv_var['options']['phone_format'] ) {
if ( isset( $mv_var['options']['phone_format'] ) && 'phone' === $mv_var['type'] && 'US' === $mv_var['options']['phone_format'] ) {
$opt_val = mailchimp_sf_merge_validate_phone( $opt_val, $mv_var );
if ( is_wp_error( $opt_val ) ) {
return $opt_val;
Expand Down Expand Up @@ -1265,7 +1270,7 @@ function mailchimp_sf_where_am_i() {
// Set defaults
$mscf_dirbase = trailingslashit( basename( __DIR__ ) ); // Typically wp-mailchimp/ or mailchimp/
$mscf_dir = trailingslashit( plugin_dir_path( __FILE__ ) );
$mscf_url = trailingslashit( plugins_url( null, __FILE__ ) );
$mscf_url = trailingslashit( plugins_url( '', __FILE__ ) );

// Try our hands at finding the real location
foreach ( $locations as $key => $loc ) {
Expand Down
6 changes: 3 additions & 3 deletions mailchimp_widget.php
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ function mailchimp_sf_signup_form( $args = array() ) {

$sub_heading = trim( get_option( 'mc_subheader_content' ) );

if ( get_option( 'mc_nuke_all_styles' ) !== true ) {
if ( get_option( 'mc_nuke_all_styles' ) !== '1' ) {
?>
<style>
.widget_mailchimpsf_widget .widget-title {
Expand Down Expand Up @@ -235,7 +235,7 @@ function mailchimp_sf_signup_form( $args = array() ) {
<div class="field-group groups mc_email_options">
<ul class="mc_list">
<li><input type="radio" name="email_type" id="email_type_html" value="html" checked="checked"><label for="email_type_html" class="mc_email_type"><?php esc_html_e( 'HTML', 'mailchimp_i18n' ); ?></label></li>
<li><input type="radio" name="email_type" id="email_type_text" value="text"><label for="email_type_text" class="mc_email_type"><?php esc_html_( 'Text', 'mailchimp_i18n' ); ?></label></li>
<li><input type="radio" name="email_type" id="email_type_text" value="text"><label for="email_type_text" class="mc_email_type"><?php esc_html_e( 'Text', 'mailchimp_i18n' ); ?></label></li>
</ul>
</div>
</div>
Expand Down Expand Up @@ -465,7 +465,7 @@ function mailchimp_form_field( $data, $num_fields ) {
<input type="text" size="18" maxlength="5" value="" name="' . esc_attr( $opt ) . '" id="' . esc_attr( $opt ) . '" class="mc_input" />';
break;
case 'phone':
if ( 'US' === $data['options']['phone_format'] ) {
if ( isset( $data['options']['phone_format'] ) && 'US' === $data['options']['phone_format'] ) {
$html .= '
<input type="text" size="2" maxlength="3" value="" name="' . esc_attr( $opt . '[area]' ) . '" id="' . esc_attr( $opt . '-area' ) . '" class="mc_input mc_phone" />
<input type="text" size="2" maxlength="3" value="" name="' . esc_attr( $opt . '[detail1]' ) . '" id="' . esc_attr( $opt . '-detail1' ) . '" class="mc_input mc_phone" />
Expand Down
2 changes: 1 addition & 1 deletion phpcs-compat.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,5 @@
<exclude-pattern>*/po/*</exclude-pattern>

<config name="minimum_supported_wp_version" value="6.0"/>
<config name="testVersion" value="5.6-"/>
<config name="testVersion" value="7.0-"/>
</ruleset>
2 changes: 1 addition & 1 deletion phpcs.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<exclude-pattern>*/tests/*</exclude-pattern>

<config name="minimum_supported_wp_version" value="6.0"/>
<config name="testVersion" value="5.6-"/>
<config name="testVersion" value="7.0-"/>

<!-- Exclude the PHPCompatibilityWP ruleset -->
<rule ref="PHPCompatibilityWP">
Expand Down
5 changes: 3 additions & 2 deletions readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Add a Mailchimp signup form widget to your WordPress site.

== Description ==

Use the Mailchimp List Subscribe plugin to quickly add a Mailchimp signup form widget to your WordPress 2.8 or higher site.
Use the Mailchimp List Subscribe plugin to quickly add a Mailchimp signup form widget to your WordPress 2.8 or higher site.

After installation, you’ll log in with your API key, select your Mailchimp list, choose merge fields and groups, and add the widget to your site. Typically, installation and setup will take about 5-10 minutes, and absolutely everything can be done via the WordPress Setting GUI, with no file editing at all.

Expand All @@ -34,7 +34,7 @@ This section describes how to install the plugin and get started using it.

If you have a custom coded sidebar or bells and whistles that prevent enabling widgets through the WordPress GUI, complete these steps instead.

WordPress v2.8 or higher:
WordPress v2.8 or higher:
` [mailchimpsf_form] `

If you are adding it inside a php code block, pop this in:
Expand Down Expand Up @@ -100,6 +100,7 @@ If your language is not listed above, feel free to create a translation. Here ar

= 1.6.0 =
* Deprecated function `mailchimpSF_signup_form`. Function `mailchimp_sf_signup_form` should be used instead.
* Bumps minimum PHP version to 7.0

= 1.5.8 =
* Fix PHP warning for merge tags.
Expand Down
6 changes: 3 additions & 3 deletions views/setup_page.php
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@

<br/>
<?php
if ( '' !== $user && $user['username'] ) {
if ( '' !== $user && isset( $user['username'] ) && $user['username'] ) {
?>
<!--<div class="notes_msg">
<strong><?php esc_html_e( 'Notes', 'mailchimp_i18n' ); ?>:</strong>
Expand Down Expand Up @@ -233,7 +233,7 @@
<tr><th colspan="2">Remove Mailchimp CSS</th></tr>
<tr class="mc-internal-heading"><th><label for="mc_nuke_all_styles"><?php esc_html_e( 'Remove CSS' ); ?></label></th><td><span class="mc-pre-input"></span><input type="checkbox" name="mc_nuke_all_styles" id="mc_nuke_all_styles" <?php checked( get_option( 'mc_nuke_all_styles' ), true ); ?> onclick="showMe('mc-custom-styling')"/><?php esc_html_e( 'This will disable all Mailchimp CSS, so it\'s recommended for WordPress experts only.' ); ?></td></tr>
</table>
<?php if ( get_option( 'mc_nuke_all_styles' ) === true ) { ?>
<?php if ( get_option( 'mc_nuke_all_styles' ) === '1' ) { ?>
<table class="widefat mc-widefat mc-custom-styling" id="mc-custom-styling" style="display:none">
<?php } else { ?>
<table class="widefat mc-widefat mc-custom-styling" id="mc-custom-styling">
Expand Down Expand Up @@ -331,7 +331,7 @@
<?php
$mv = get_option( 'mc_merge_vars' );

if ( count( $mv ) === 0 || ! is_array( $mv ) ) {
if ( ! is_array( $mv ) || count( $mv ) === 0 ) {
?>
<em><?php esc_html_e( 'No Merge Fields found.', 'mailchimp_i18n' ); ?></em>
<?php
Expand Down

0 comments on commit 00b1321

Please sign in to comment.