| Server IP : 130.225.57.55 / Your IP : 216.73.216.60 Web Server : Apache System : Linux wp-vhost07 5.15.0-173-generic #183-Ubuntu SMP Fri Mar 6 13:29:34 UTC 2026 x86_64 User : root ( 0) PHP Version : 8.1.2-1ubuntu2.25 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /srv/www/reco2st.eu/https/wp-content/plugins/mozaik-mailchimp-options/ |
Upload File : |
<?php
/*
* Plugin Name: MOZAIK - MailChimp Options Plugin
* Description: Adds required functionality for essential MailChimp list options
* Version: 1.0
* Author: Mozaik
* Author URI: http://mozaik.com
* License: All rights reserved.
*
* Copyright 2018 Mozaik Ltd. (email : info@mozaik.com)
*/
// make sure this file is called by wp
defined( 'ABSPATH' ) or die();
if ( ! class_exists( 'MOZ_Mailchimp' ) ):
class MOZ_Mailchimp {
private static $options;
function __construct() {
if ( class_exists( 'acf' ) ) {
add_filter( 'acf/settings/load_json', [ $this, 'acf_json_load_point' ] );
add_action( 'acf/init', [ $this, 'acf_register_options_page' ] );
self::$options = self::get_options();
// add settings link on plugins page
add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), [ $this, 'add_action_links' ] );
}
add_shortcode( 'moz-mailchimp', [ $this, 'mailchimp_shortcode' ] );
add_action( 'wp_enqueue_scripts', [ $this, 'register_plugin_scripts' ] );
}
function register_plugin_scripts() {
$displayType = trim( get_field( 'mailchimp_subscription_display_type', 'options' ) );
if ( $displayType === 'popup' ) {
wp_enqueue_script( 'moz-mailchimp', plugin_dir_url( __FILE__ ) . 'assets/js/main.js', [ 'jquery' ], null, true );
wp_localize_script( 'moz-mailchimp', 'mailchimpConfig', self::$options );
add_action( 'wp_footer', function () {
?>
<script type="text/javascript">
var chimpPopupLoader = document.createElement("script");
chimpPopupLoader.src = '//s3.amazonaws.com/downloads.mailchimp.com/js/signup-forms/popup/embed.js';
chimpPopupLoader.setAttribute('data-dojo-config', 'usePlainJson: true, isDebug: false');
(function () {
document.body.appendChild(chimpPopupLoader);
})();
</script>
<?php
} );
}
}
// FRONT END FUNCTIONS
public static function mailchimp_shortcode( $atts = [], $content = null, $tag = '' ) {
ob_start();
$formId = self::$options['formId'];
$form_fields = apply_filters( 'moz_newsletter_form_fields', [
'form' => [
'class' => ''
],
'form_holder' => [
'class' => 'newsletter__holder'
],
'email' => [
'label' => [
'class' => '',
'text' => ''
],
'input' => [
'class' => 'newsletter__mail',
'placeholder' => __( 'your@email.here', 'moz_mailchimp' )
]
],
'button' => [
'class' => '',
'text' => '<span>' . __( 'Sign up', 'moz_mailchimp' ) . '</span>'
]
] );
?>
<form action="https://<?php echo self::$options['baseUrl']; ?>/subscribe"
id="<?php echo $formId; ?>"
method="post" target="_blank" autocomplete="off"
class="<?php echo $form_fields['form']['class']; ?>">
<div class="<?php echo $form_fields['form_holder']['class']; ?>">
<?php if ( $form_fields['email']['label']['text'] !== '' ) : ?>
<label for="MERGE0"
class="<?php echo $form_fields['email']['label']['class']; ?>"><?php echo $form_fields['email']['label']['text']; ?></label>
<?php endif; ?>
<input type="email" id="MERGE0" name="MERGE0"
class="<?php echo $form_fields['email']['input']['class']; ?>"
placeholder="<?php echo $form_fields['email']['input']['placeholder']; ?>" required/>
<button type="submit"
class="<?php echo $form_fields['button']['class']; ?>"><?php echo $form_fields['button']['text']; ?></button>
</div>
<div class="visuallyhidden">
<input type="hidden" name="u" value="<?php echo self::$options['uuid']; ?>"/>
<input type="hidden" name="id" value="<?php echo self::$options['lid']; ?>"/>
<?php
/*
* @hook moz_newsletter_form_hidden_fields
*/
do_action( 'moz_newsletter_form_hidden_fields' );
?>
</div>
</form>
<?php
return ob_get_clean();
}
// BACK END FUNCTIONS
public static function get_options() {
$options = [
'baseUrl' => get_field( 'mailchimp_subscription_manage_base_url', 'options' ),
'uuid' => get_field( 'mailchimp_subscription_account_id', 'options' ),
'lid' => get_field( 'mailchimp_subscription_list_id', 'options' ),
'formId' => apply_filters( 'moz_newsletter_form_id', 'mc4wp-form-1' ),
];
$displayType = get_field( 'mailchimp_subscription_display_type', 'options' );
$displayTrigger = get_field( 'mailchimp_subscription_display_popup_trigger', 'options' );
if ( $displayType === 'popup' && $displayTrigger === 'custom' ) {
$options['selector'] = get_field( 'mailchimp_subscription_custom_selector', 'options' );
}
return apply_filters( 'moz_mailchimp_options', $options );
}
function acf_json_load_point() {
$paths[] = __DIR__ . '/acf-fields';
return $paths;
}
function acf_register_options_page() {
// options page
acf_add_options_page( array(
'position' => 59,
'page_title' => __( 'MailChimp List Options' ),
'menu_title' => __( 'MailChimp Settings' ),
'menu_slug' => 'acf-options-mailchimp-list-options',
'redirect' => false,
'icon_url' => 'dashicons-email-alt'
) );
}
function add_action_links( $links ) {
$settings_link = [
'<a href="' . admin_url( 'admin.php?page=acf-options-mailchimp-list-options' ) . '">' . __( 'Settings' ) . '</a>',
];
return array_merge( $links, $settings_link );
}
}
endif;
$mailchimp = new MOZ_Mailchimp();