Нет описания

Providers.php 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. /*******************************************************************************
  3. * Copyright (c) 2019, Code Atlantic LLC
  4. ******************************************************************************/
  5. if ( ! defined( 'ABSPATH' ) ) {
  6. exit;
  7. }
  8. /**
  9. * Class PUM_Newsletter_Providers
  10. *
  11. * This class maintains a global set of all registered PUM newsletter providers.
  12. */
  13. class PUM_Newsletter_Providers {
  14. /**
  15. * @var PUM_Newsletter_Providers
  16. */
  17. public static $instance;
  18. /**
  19. * @var array
  20. */
  21. public $providers = array();
  22. /**
  23. * @return PUM_Newsletter_Providers
  24. */
  25. public static function instance() {
  26. if ( ! isset( self::$instance ) ) {
  27. self::$instance = new self;
  28. }
  29. return self::$instance;
  30. }
  31. public function add_provider( PUM_Abstract_Provider $provider ) {
  32. $this->providers[ $provider->id ] = $provider;
  33. }
  34. /**
  35. * @return array PUM_Shortcode
  36. */
  37. public function get_providers() {
  38. return $this->providers;
  39. }
  40. public static function selectlist() {
  41. $selectlist = array();
  42. foreach ( self::instance()->get_providers() as $id => $provider ) {
  43. $selectlist[ $provider->name ] = $id;
  44. }
  45. return $selectlist;
  46. }
  47. /**
  48. * @return array
  49. */
  50. public static function dropdown_list() {
  51. $providers = self::instance()->get_providers();
  52. $list = array();
  53. foreach ( $providers as $id => $provider ) {
  54. $list[ $id ] = $provider->name;
  55. }
  56. return $list;
  57. }
  58. }