: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
* Handler for Newsletter Providers
* @copyright Copyright (c) 2023, Code Atlantic LLC
if ( ! defined( 'ABSPATH' ) ) {
* Class PUM_Newsletter_Providers
* This class maintains a global set of all registered PUM newsletter providers.
class PUM_Newsletter_Providers {
* @var PUM_Newsletter_Providers
* @return PUM_Newsletter_Providers
public static function instance() {
if ( ! isset( self::$instance ) ) {
self::$instance = new self();
public function add_provider( PUM_Abstract_Provider $provider ) {
$this->providers[ $provider->id ] = $provider;
* @return array PUM_Shortcode
public function get_providers() {
public static function selectlist() {
foreach ( self::instance()->get_providers() as $id => $provider ) {
$selectlist[ $provider->name ] = $id;
public static function dropdown_list() {
$providers = self::instance()->get_providers();
foreach ( $providers as $id => $provider ) {
$list[ $id ] = $provider->name;