first commit

This commit is contained in:
2026-03-05 13:07:40 +01:00
commit 64ba0721ee
25709 changed files with 4691006 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
<?php
/**
* Newsletter Provider Base class
*
* @package PUM
* @copyright Copyright (c) 2023, Code Atlantic LLC
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Class PUM_Newsletter_Provider
*
* @deprecated 1.7.0
*/
abstract class PUM_Newsletter_Provider extends PUM_Abstract_Provider {
public function __construct() {
parent::__construct();
remove_filter( 'pum_settings_fields', [ $this, 'register_settings' ] );
add_filter( 'pum_settings_fields', [ $this, 'process_deprecated_settings_fields' ] );
// add_filter( 'pum_newsletter_settings', array( $this, 'register_settings' ) );
}
/**
* Process deprecated settings field registration from extensions that haven't updated.
*
* @param $fields
*
* @return mixed
*/
public function process_deprecated_settings_fields( $fields ) {
$fields['subscriptions'][ $this->id ] = $this->register_settings();
return $fields;
}
}

View File

@@ -0,0 +1,77 @@
<?php
/**
* Handler for Newsletter Providers
*
* @package PUM
* @copyright Copyright (c) 2023, Code Atlantic LLC
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Class PUM_Newsletter_Providers
*
* This class maintains a global set of all registered PUM newsletter providers.
*/
class PUM_Newsletter_Providers {
/**
* @var PUM_Newsletter_Providers
*/
public static $instance;
/**
* @var array
*/
public $providers = [];
/**
* @return PUM_Newsletter_Providers
*/
public static function instance() {
if ( ! isset( self::$instance ) ) {
self::$instance = new self();
}
return self::$instance;
}
public function add_provider( PUM_Abstract_Provider $provider ) {
$this->providers[ $provider->id ] = $provider;
}
/**
* @return array PUM_Shortcode
*/
public function get_providers() {
return $this->providers;
}
public static function selectlist() {
$selectlist = [];
foreach ( self::instance()->get_providers() as $id => $provider ) {
$selectlist[ $provider->name ] = $id;
}
return $selectlist;
}
/**
* @return array
*/
public static function dropdown_list() {
$providers = self::instance()->get_providers();
$list = [];
foreach ( $providers as $id => $provider ) {
$list[ $id ] = $provider->name;
}
return $list;
}
}