@@ -13,7 +13,7 @@ discard block |
||
| 13 | 13 | * Bail if we are not in WP. |
| 14 | 14 | */ |
| 15 | 15 | if ( ! defined( 'ABSPATH' ) ) { |
| 16 | - exit; |
|
| 16 | + exit; |
|
| 17 | 17 | } |
| 18 | 18 | |
| 19 | 19 | /** |
@@ -21,201 +21,201 @@ discard block |
||
| 21 | 21 | */ |
| 22 | 22 | if ( ! class_exists( 'AyeCode_UI_Settings' ) ) { |
| 23 | 23 | |
| 24 | - /** |
|
| 25 | - * A Class to be able to change settings for Font Awesome. |
|
| 26 | - * |
|
| 27 | - * Class AyeCode_UI_Settings |
|
| 28 | - * @ver 1.0.0 |
|
| 29 | - * @todo decide how to implement textdomain |
|
| 30 | - */ |
|
| 31 | - class AyeCode_UI_Settings { |
|
| 32 | - |
|
| 33 | - /** |
|
| 34 | - * Class version version. |
|
| 35 | - * |
|
| 36 | - * @var string |
|
| 37 | - */ |
|
| 38 | - public $version = '1.0.1'; |
|
| 39 | - |
|
| 40 | - /** |
|
| 41 | - * Class textdomain. |
|
| 42 | - * |
|
| 43 | - * @var string |
|
| 44 | - */ |
|
| 45 | - public $textdomain = 'aui'; |
|
| 46 | - |
|
| 47 | - /** |
|
| 48 | - * Latest version of Bootstrap at time of publish published. |
|
| 49 | - * |
|
| 50 | - * @var string |
|
| 51 | - */ |
|
| 52 | - public $latest = "4.5.3"; |
|
| 53 | - |
|
| 54 | - /** |
|
| 55 | - * Current version of select2 being used. |
|
| 56 | - * |
|
| 57 | - * @var string |
|
| 58 | - */ |
|
| 59 | - public $select2_version = "4.0.11"; |
|
| 60 | - |
|
| 61 | - /** |
|
| 62 | - * The title. |
|
| 63 | - * |
|
| 64 | - * @var string |
|
| 65 | - */ |
|
| 66 | - public $name = 'AyeCode UI'; |
|
| 67 | - |
|
| 68 | - /** |
|
| 69 | - * The relative url to the assets. |
|
| 70 | - * |
|
| 71 | - * @var string |
|
| 72 | - */ |
|
| 73 | - public $url = ''; |
|
| 74 | - |
|
| 75 | - /** |
|
| 76 | - * Holds the settings values. |
|
| 77 | - * |
|
| 78 | - * @var array |
|
| 79 | - */ |
|
| 80 | - private $settings; |
|
| 81 | - |
|
| 82 | - /** |
|
| 83 | - * AyeCode_UI_Settings instance. |
|
| 84 | - * |
|
| 85 | - * @access private |
|
| 86 | - * @since 1.0.0 |
|
| 87 | - * @var AyeCode_UI_Settings There can be only one! |
|
| 88 | - */ |
|
| 89 | - private static $instance = null; |
|
| 90 | - |
|
| 91 | - /** |
|
| 92 | - * Main AyeCode_UI_Settings Instance. |
|
| 93 | - * |
|
| 94 | - * Ensures only one instance of AyeCode_UI_Settings is loaded or can be loaded. |
|
| 95 | - * |
|
| 96 | - * @since 1.0.0 |
|
| 97 | - * @static |
|
| 98 | - * @return AyeCode_UI_Settings - Main instance. |
|
| 99 | - */ |
|
| 100 | - public static function instance() { |
|
| 101 | - if ( ! isset( self::$instance ) && ! ( self::$instance instanceof AyeCode_UI_Settings ) ) { |
|
| 102 | - |
|
| 103 | - self::$instance = new AyeCode_UI_Settings; |
|
| 104 | - |
|
| 105 | - add_action( 'init', array( self::$instance, 'init' ) ); // set settings |
|
| 106 | - |
|
| 107 | - if ( is_admin() ) { |
|
| 108 | - add_action( 'admin_menu', array( self::$instance, 'menu_item' ) ); |
|
| 109 | - add_action( 'admin_init', array( self::$instance, 'register_settings' ) ); |
|
| 110 | - |
|
| 111 | - // Maybe show example page |
|
| 112 | - add_action( 'template_redirect', array( self::$instance,'maybe_show_examples' ) ); |
|
| 113 | - } |
|
| 24 | + /** |
|
| 25 | + * A Class to be able to change settings for Font Awesome. |
|
| 26 | + * |
|
| 27 | + * Class AyeCode_UI_Settings |
|
| 28 | + * @ver 1.0.0 |
|
| 29 | + * @todo decide how to implement textdomain |
|
| 30 | + */ |
|
| 31 | + class AyeCode_UI_Settings { |
|
| 32 | + |
|
| 33 | + /** |
|
| 34 | + * Class version version. |
|
| 35 | + * |
|
| 36 | + * @var string |
|
| 37 | + */ |
|
| 38 | + public $version = '1.0.1'; |
|
| 39 | + |
|
| 40 | + /** |
|
| 41 | + * Class textdomain. |
|
| 42 | + * |
|
| 43 | + * @var string |
|
| 44 | + */ |
|
| 45 | + public $textdomain = 'aui'; |
|
| 46 | + |
|
| 47 | + /** |
|
| 48 | + * Latest version of Bootstrap at time of publish published. |
|
| 49 | + * |
|
| 50 | + * @var string |
|
| 51 | + */ |
|
| 52 | + public $latest = "4.5.3"; |
|
| 53 | + |
|
| 54 | + /** |
|
| 55 | + * Current version of select2 being used. |
|
| 56 | + * |
|
| 57 | + * @var string |
|
| 58 | + */ |
|
| 59 | + public $select2_version = "4.0.11"; |
|
| 60 | + |
|
| 61 | + /** |
|
| 62 | + * The title. |
|
| 63 | + * |
|
| 64 | + * @var string |
|
| 65 | + */ |
|
| 66 | + public $name = 'AyeCode UI'; |
|
| 67 | + |
|
| 68 | + /** |
|
| 69 | + * The relative url to the assets. |
|
| 70 | + * |
|
| 71 | + * @var string |
|
| 72 | + */ |
|
| 73 | + public $url = ''; |
|
| 74 | + |
|
| 75 | + /** |
|
| 76 | + * Holds the settings values. |
|
| 77 | + * |
|
| 78 | + * @var array |
|
| 79 | + */ |
|
| 80 | + private $settings; |
|
| 81 | + |
|
| 82 | + /** |
|
| 83 | + * AyeCode_UI_Settings instance. |
|
| 84 | + * |
|
| 85 | + * @access private |
|
| 86 | + * @since 1.0.0 |
|
| 87 | + * @var AyeCode_UI_Settings There can be only one! |
|
| 88 | + */ |
|
| 89 | + private static $instance = null; |
|
| 90 | + |
|
| 91 | + /** |
|
| 92 | + * Main AyeCode_UI_Settings Instance. |
|
| 93 | + * |
|
| 94 | + * Ensures only one instance of AyeCode_UI_Settings is loaded or can be loaded. |
|
| 95 | + * |
|
| 96 | + * @since 1.0.0 |
|
| 97 | + * @static |
|
| 98 | + * @return AyeCode_UI_Settings - Main instance. |
|
| 99 | + */ |
|
| 100 | + public static function instance() { |
|
| 101 | + if ( ! isset( self::$instance ) && ! ( self::$instance instanceof AyeCode_UI_Settings ) ) { |
|
| 102 | + |
|
| 103 | + self::$instance = new AyeCode_UI_Settings; |
|
| 104 | + |
|
| 105 | + add_action( 'init', array( self::$instance, 'init' ) ); // set settings |
|
| 106 | + |
|
| 107 | + if ( is_admin() ) { |
|
| 108 | + add_action( 'admin_menu', array( self::$instance, 'menu_item' ) ); |
|
| 109 | + add_action( 'admin_init', array( self::$instance, 'register_settings' ) ); |
|
| 110 | + |
|
| 111 | + // Maybe show example page |
|
| 112 | + add_action( 'template_redirect', array( self::$instance,'maybe_show_examples' ) ); |
|
| 113 | + } |
|
| 114 | 114 | |
| 115 | - add_action( 'customize_register', array( self::$instance, 'customizer_settings' )); |
|
| 116 | - |
|
| 117 | - do_action( 'ayecode_ui_settings_loaded' ); |
|
| 118 | - } |
|
| 119 | - |
|
| 120 | - return self::$instance; |
|
| 121 | - } |
|
| 122 | - |
|
| 123 | - /** |
|
| 124 | - * Setup some constants. |
|
| 125 | - */ |
|
| 126 | - public function constants(){ |
|
| 127 | - define('AUI_PRIMARY_COLOR_ORIGINAL', "#1e73be"); |
|
| 128 | - define('AUI_SECONDARY_COLOR_ORIGINAL', '#6c757d'); |
|
| 129 | - if (!defined('AUI_PRIMARY_COLOR')) define('AUI_PRIMARY_COLOR', AUI_PRIMARY_COLOR_ORIGINAL); |
|
| 130 | - if (!defined('AUI_SECONDARY_COLOR')) define('AUI_SECONDARY_COLOR', AUI_SECONDARY_COLOR_ORIGINAL); |
|
| 131 | - } |
|
| 132 | - |
|
| 133 | - /** |
|
| 134 | - * Initiate the settings and add the required action hooks. |
|
| 135 | - */ |
|
| 136 | - public function init() { |
|
| 137 | - $this->constants(); |
|
| 138 | - $this->settings = $this->get_settings(); |
|
| 139 | - $this->url = $this->get_url(); |
|
| 140 | - |
|
| 141 | - /** |
|
| 142 | - * Maybe load CSS |
|
| 143 | - * |
|
| 144 | - * We load super early in case there is a theme version that might change the colors |
|
| 145 | - */ |
|
| 146 | - if ( $this->settings['css'] ) { |
|
| 147 | - add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_style' ), 1 ); |
|
| 148 | - } |
|
| 149 | - if ( $this->settings['css_backend'] && $this->load_admin_scripts() ) { |
|
| 150 | - add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_style' ), 1 ); |
|
| 151 | - } |
|
| 152 | - |
|
| 153 | - // maybe load JS |
|
| 154 | - if ( $this->settings['js'] ) { |
|
| 155 | - add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 1 ); |
|
| 156 | - } |
|
| 157 | - if ( $this->settings['js_backend'] && $this->load_admin_scripts() ) { |
|
| 158 | - add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ), 1 ); |
|
| 159 | - } |
|
| 160 | - |
|
| 161 | - // Maybe set the HTML font size |
|
| 162 | - if ( $this->settings['html_font_size'] ) { |
|
| 163 | - add_action( 'wp_footer', array( $this, 'html_font_size' ), 10 ); |
|
| 164 | - } |
|
| 165 | - |
|
| 166 | - |
|
| 167 | - } |
|
| 168 | - |
|
| 169 | - /** |
|
| 170 | - * Check if we should load the admin scripts or not. |
|
| 171 | - * |
|
| 172 | - * @return bool |
|
| 173 | - */ |
|
| 174 | - public function load_admin_scripts(){ |
|
| 175 | - $result = true; |
|
| 176 | - |
|
| 177 | - if(!empty($this->settings['disable_admin'])){ |
|
| 178 | - $url_parts = explode("\n",$this->settings['disable_admin']); |
|
| 179 | - foreach($url_parts as $part){ |
|
| 180 | - if( strpos($_SERVER['REQUEST_URI'], trim($part)) !== false ){ |
|
| 181 | - return false; // return early, no point checking further |
|
| 182 | - } |
|
| 183 | - } |
|
| 184 | - } |
|
| 115 | + add_action( 'customize_register', array( self::$instance, 'customizer_settings' )); |
|
| 116 | + |
|
| 117 | + do_action( 'ayecode_ui_settings_loaded' ); |
|
| 118 | + } |
|
| 119 | + |
|
| 120 | + return self::$instance; |
|
| 121 | + } |
|
| 122 | + |
|
| 123 | + /** |
|
| 124 | + * Setup some constants. |
|
| 125 | + */ |
|
| 126 | + public function constants(){ |
|
| 127 | + define('AUI_PRIMARY_COLOR_ORIGINAL', "#1e73be"); |
|
| 128 | + define('AUI_SECONDARY_COLOR_ORIGINAL', '#6c757d'); |
|
| 129 | + if (!defined('AUI_PRIMARY_COLOR')) define('AUI_PRIMARY_COLOR', AUI_PRIMARY_COLOR_ORIGINAL); |
|
| 130 | + if (!defined('AUI_SECONDARY_COLOR')) define('AUI_SECONDARY_COLOR', AUI_SECONDARY_COLOR_ORIGINAL); |
|
| 131 | + } |
|
| 132 | + |
|
| 133 | + /** |
|
| 134 | + * Initiate the settings and add the required action hooks. |
|
| 135 | + */ |
|
| 136 | + public function init() { |
|
| 137 | + $this->constants(); |
|
| 138 | + $this->settings = $this->get_settings(); |
|
| 139 | + $this->url = $this->get_url(); |
|
| 140 | + |
|
| 141 | + /** |
|
| 142 | + * Maybe load CSS |
|
| 143 | + * |
|
| 144 | + * We load super early in case there is a theme version that might change the colors |
|
| 145 | + */ |
|
| 146 | + if ( $this->settings['css'] ) { |
|
| 147 | + add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_style' ), 1 ); |
|
| 148 | + } |
|
| 149 | + if ( $this->settings['css_backend'] && $this->load_admin_scripts() ) { |
|
| 150 | + add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_style' ), 1 ); |
|
| 151 | + } |
|
| 152 | + |
|
| 153 | + // maybe load JS |
|
| 154 | + if ( $this->settings['js'] ) { |
|
| 155 | + add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 1 ); |
|
| 156 | + } |
|
| 157 | + if ( $this->settings['js_backend'] && $this->load_admin_scripts() ) { |
|
| 158 | + add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ), 1 ); |
|
| 159 | + } |
|
| 160 | + |
|
| 161 | + // Maybe set the HTML font size |
|
| 162 | + if ( $this->settings['html_font_size'] ) { |
|
| 163 | + add_action( 'wp_footer', array( $this, 'html_font_size' ), 10 ); |
|
| 164 | + } |
|
| 165 | + |
|
| 166 | + |
|
| 167 | + } |
|
| 168 | + |
|
| 169 | + /** |
|
| 170 | + * Check if we should load the admin scripts or not. |
|
| 171 | + * |
|
| 172 | + * @return bool |
|
| 173 | + */ |
|
| 174 | + public function load_admin_scripts(){ |
|
| 175 | + $result = true; |
|
| 176 | + |
|
| 177 | + if(!empty($this->settings['disable_admin'])){ |
|
| 178 | + $url_parts = explode("\n",$this->settings['disable_admin']); |
|
| 179 | + foreach($url_parts as $part){ |
|
| 180 | + if( strpos($_SERVER['REQUEST_URI'], trim($part)) !== false ){ |
|
| 181 | + return false; // return early, no point checking further |
|
| 182 | + } |
|
| 183 | + } |
|
| 184 | + } |
|
| 185 | 185 | |
| 186 | - return $result; |
|
| 187 | - } |
|
| 186 | + return $result; |
|
| 187 | + } |
|
| 188 | 188 | |
| 189 | - /** |
|
| 190 | - * Add a html font size to the footer. |
|
| 191 | - */ |
|
| 192 | - public function html_font_size(){ |
|
| 193 | - $this->settings = $this->get_settings(); |
|
| 194 | - echo "<style>html{font-size:".absint($this->settings['html_font_size'])."px;}</style>"; |
|
| 195 | - } |
|
| 189 | + /** |
|
| 190 | + * Add a html font size to the footer. |
|
| 191 | + */ |
|
| 192 | + public function html_font_size(){ |
|
| 193 | + $this->settings = $this->get_settings(); |
|
| 194 | + echo "<style>html{font-size:".absint($this->settings['html_font_size'])."px;}</style>"; |
|
| 195 | + } |
|
| 196 | 196 | |
| 197 | - /** |
|
| 198 | - * Adds the styles. |
|
| 199 | - */ |
|
| 200 | - public function enqueue_style() { |
|
| 197 | + /** |
|
| 198 | + * Adds the styles. |
|
| 199 | + */ |
|
| 200 | + public function enqueue_style() { |
|
| 201 | 201 | |
| 202 | - $css_setting = current_action() == 'wp_enqueue_scripts' ? 'css' : 'css_backend'; |
|
| 202 | + $css_setting = current_action() == 'wp_enqueue_scripts' ? 'css' : 'css_backend'; |
|
| 203 | 203 | |
| 204 | - $rtl = is_rtl() ? '-rtl' : ''; |
|
| 204 | + $rtl = is_rtl() ? '-rtl' : ''; |
|
| 205 | 205 | |
| 206 | - if($this->settings[$css_setting]){ |
|
| 207 | - $compatibility = $this->settings[$css_setting]=='core' ? false : true; |
|
| 208 | - $url = $this->settings[$css_setting]=='core' ? $this->url.'assets/css/ayecode-ui'.$rtl.'.css' : $this->url.'assets/css/ayecode-ui-compatibility'.$rtl.'.css'; |
|
| 209 | - wp_register_style( 'ayecode-ui', $url, array(), $this->latest ); |
|
| 210 | - wp_enqueue_style( 'ayecode-ui' ); |
|
| 206 | + if($this->settings[$css_setting]){ |
|
| 207 | + $compatibility = $this->settings[$css_setting]=='core' ? false : true; |
|
| 208 | + $url = $this->settings[$css_setting]=='core' ? $this->url.'assets/css/ayecode-ui'.$rtl.'.css' : $this->url.'assets/css/ayecode-ui-compatibility'.$rtl.'.css'; |
|
| 209 | + wp_register_style( 'ayecode-ui', $url, array(), $this->latest ); |
|
| 210 | + wp_enqueue_style( 'ayecode-ui' ); |
|
| 211 | 211 | |
| 212 | - // flatpickr |
|
| 213 | - wp_register_style( 'flatpickr', $this->url.'assets/css/flatpickr.min.css', array(), $this->latest ); |
|
| 212 | + // flatpickr |
|
| 213 | + wp_register_style( 'flatpickr', $this->url.'assets/css/flatpickr.min.css', array(), $this->latest ); |
|
| 214 | 214 | |
| 215 | 215 | |
| 216 | - // fix some wp-admin issues |
|
| 217 | - if(is_admin()){ |
|
| 218 | - $custom_css = " |
|
| 216 | + // fix some wp-admin issues |
|
| 217 | + if(is_admin()){ |
|
| 218 | + $custom_css = " |
|
| 219 | 219 | body{ |
| 220 | 220 | background-color: #f1f1f1; |
| 221 | 221 | font-family: -apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif; |
@@ -251,29 +251,29 @@ discard block |
||
| 251 | 251 | } |
| 252 | 252 | "; |
| 253 | 253 | |
| 254 | - // @todo, remove once fixed :: fix for this bug https://github.com/WordPress/gutenberg/issues/14377 |
|
| 255 | - $custom_css .= " |
|
| 254 | + // @todo, remove once fixed :: fix for this bug https://github.com/WordPress/gutenberg/issues/14377 |
|
| 255 | + $custom_css .= " |
|
| 256 | 256 | .edit-post-sidebar input[type=color].components-text-control__input{ |
| 257 | 257 | padding: 0; |
| 258 | 258 | } |
| 259 | 259 | "; |
| 260 | - wp_add_inline_style( 'ayecode-ui', $custom_css ); |
|
| 261 | - } |
|
| 260 | + wp_add_inline_style( 'ayecode-ui', $custom_css ); |
|
| 261 | + } |
|
| 262 | 262 | |
| 263 | - // custom changes |
|
| 264 | - wp_add_inline_style( 'ayecode-ui', self::custom_css($compatibility) ); |
|
| 263 | + // custom changes |
|
| 264 | + wp_add_inline_style( 'ayecode-ui', self::custom_css($compatibility) ); |
|
| 265 | 265 | |
| 266 | - } |
|
| 267 | - } |
|
| 266 | + } |
|
| 267 | + } |
|
| 268 | 268 | |
| 269 | - /** |
|
| 270 | - * Get inline script used if bootstrap enqueued |
|
| 271 | - * |
|
| 272 | - * If this remains small then its best to use this than to add another JS file. |
|
| 273 | - */ |
|
| 274 | - public function inline_script(){ |
|
| 275 | - ob_start(); |
|
| 276 | - ?> |
|
| 269 | + /** |
|
| 270 | + * Get inline script used if bootstrap enqueued |
|
| 271 | + * |
|
| 272 | + * If this remains small then its best to use this than to add another JS file. |
|
| 273 | + */ |
|
| 274 | + public function inline_script(){ |
|
| 275 | + ob_start(); |
|
| 276 | + ?> |
|
| 277 | 277 | <script> |
| 278 | 278 | |
| 279 | 279 | /** |
@@ -760,25 +760,25 @@ discard block |
||
| 760 | 760 | |
| 761 | 761 | </script> |
| 762 | 762 | <?php |
| 763 | - $output = ob_get_clean(); |
|
| 763 | + $output = ob_get_clean(); |
|
| 764 | 764 | |
| 765 | - /* |
|
| 765 | + /* |
|
| 766 | 766 | * We only add the <script> tags for code highlighting, so we strip them from the output. |
| 767 | 767 | */ |
| 768 | - return str_replace( array( |
|
| 769 | - '<script>', |
|
| 770 | - '</script>' |
|
| 771 | - ), '', $output ); |
|
| 772 | - } |
|
| 773 | - |
|
| 774 | - /** |
|
| 775 | - * Get inline script used if bootstrap file browser enqueued. |
|
| 776 | - * |
|
| 777 | - * If this remains small then its best to use this than to add another JS file. |
|
| 778 | - */ |
|
| 779 | - public function inline_script_file_browser(){ |
|
| 780 | - ob_start(); |
|
| 781 | - ?> |
|
| 768 | + return str_replace( array( |
|
| 769 | + '<script>', |
|
| 770 | + '</script>' |
|
| 771 | + ), '', $output ); |
|
| 772 | + } |
|
| 773 | + |
|
| 774 | + /** |
|
| 775 | + * Get inline script used if bootstrap file browser enqueued. |
|
| 776 | + * |
|
| 777 | + * If this remains small then its best to use this than to add another JS file. |
|
| 778 | + */ |
|
| 779 | + public function inline_script_file_browser(){ |
|
| 780 | + ob_start(); |
|
| 781 | + ?> |
|
| 782 | 782 | <script> |
| 783 | 783 | // run on doc ready |
| 784 | 784 | jQuery(document).ready(function () { |
@@ -786,184 +786,184 @@ discard block |
||
| 786 | 786 | }); |
| 787 | 787 | </script> |
| 788 | 788 | <?php |
| 789 | - $output = ob_get_clean(); |
|
| 789 | + $output = ob_get_clean(); |
|
| 790 | 790 | |
| 791 | - /* |
|
| 791 | + /* |
|
| 792 | 792 | * We only add the <script> tags for code highlighting, so we strip them from the output. |
| 793 | 793 | */ |
| 794 | - return str_replace( array( |
|
| 795 | - '<script>', |
|
| 796 | - '</script>' |
|
| 797 | - ), '', $output ); |
|
| 798 | - } |
|
| 799 | - |
|
| 800 | - /** |
|
| 801 | - * Adds the Font Awesome JS. |
|
| 802 | - */ |
|
| 803 | - public function enqueue_scripts() { |
|
| 804 | - |
|
| 805 | - $js_setting = current_action() == 'wp_enqueue_scripts' ? 'js' : 'js_backend'; |
|
| 806 | - |
|
| 807 | - // select2 |
|
| 808 | - wp_register_script( 'select2', $this->url.'assets/js/select2.min.js', array('jquery'), $this->select2_version ); |
|
| 809 | - |
|
| 810 | - // flatpickr |
|
| 811 | - wp_register_script( 'flatpickr', $this->url.'assets/js/flatpickr.min.js', array(), $this->latest ); |
|
| 812 | - |
|
| 813 | - // Bootstrap file browser |
|
| 814 | - wp_register_script( 'aui-custom-file-input', $url = $this->url.'assets/js/bs-custom-file-input.min.js', array('jquery'), $this->select2_version ); |
|
| 815 | - wp_add_inline_script( 'aui-custom-file-input', $this->inline_script_file_browser() ); |
|
| 816 | - |
|
| 817 | - $load_inline = false; |
|
| 818 | - |
|
| 819 | - if($this->settings[$js_setting]=='core-popper'){ |
|
| 820 | - // Bootstrap bundle |
|
| 821 | - $url = $this->url.'assets/js/bootstrap.bundle.min.js'; |
|
| 822 | - wp_register_script( 'bootstrap-js-bundle', $url, array('select2','jquery'), $this->latest ); |
|
| 823 | - // if in admin then add to footer for compatibility. |
|
| 824 | - is_admin() ? wp_enqueue_script( 'bootstrap-js-bundle', '', null, null, true ) : wp_enqueue_script( 'bootstrap-js-bundle'); |
|
| 825 | - $script = $this->inline_script(); |
|
| 826 | - wp_add_inline_script( 'bootstrap-js-bundle', $script ); |
|
| 827 | - }elseif($this->settings[$js_setting]=='popper'){ |
|
| 828 | - $url = $this->url.'assets/js/popper.min.js'; |
|
| 829 | - wp_register_script( 'bootstrap-js-popper', $url, array('select2','jquery'), $this->latest ); |
|
| 830 | - wp_enqueue_script( 'bootstrap-js-popper' ); |
|
| 831 | - $load_inline = true; |
|
| 832 | - }else{ |
|
| 833 | - $load_inline = true; |
|
| 834 | - } |
|
| 835 | - |
|
| 836 | - // Load needed inline scripts by faking the loading of a script if the main script is not being loaded |
|
| 837 | - if($load_inline){ |
|
| 838 | - wp_register_script( 'bootstrap-dummy', '',array('select2','jquery') ); |
|
| 839 | - wp_enqueue_script( 'bootstrap-dummy' ); |
|
| 840 | - $script = $this->inline_script(); |
|
| 841 | - wp_add_inline_script( 'bootstrap-dummy', $script ); |
|
| 842 | - } |
|
| 843 | - |
|
| 844 | - } |
|
| 845 | - |
|
| 846 | - /** |
|
| 847 | - * Enqueue flatpickr if called. |
|
| 848 | - */ |
|
| 849 | - public function enqueue_flatpickr(){ |
|
| 850 | - wp_enqueue_style( 'flatpickr' ); |
|
| 851 | - wp_enqueue_script( 'flatpickr' ); |
|
| 852 | - } |
|
| 853 | - |
|
| 854 | - /** |
|
| 855 | - * Get the url path to the current folder. |
|
| 856 | - * |
|
| 857 | - * @return string |
|
| 858 | - */ |
|
| 859 | - public function get_url() { |
|
| 860 | - |
|
| 861 | - $url = ''; |
|
| 862 | - // check if we are inside a plugin |
|
| 863 | - $file_dir = str_replace( "/includes","", wp_normalize_path( dirname( __FILE__ ) ) ); |
|
| 864 | - |
|
| 865 | - // add check in-case user has changed wp-content dir name. |
|
| 866 | - $wp_content_folder_name = basename(WP_CONTENT_DIR); |
|
| 867 | - $dir_parts = explode("/$wp_content_folder_name/",$file_dir); |
|
| 868 | - $url_parts = explode("/$wp_content_folder_name/",plugins_url()); |
|
| 869 | - |
|
| 870 | - if(!empty($url_parts[0]) && !empty($dir_parts[1])){ |
|
| 871 | - $url = trailingslashit( $url_parts[0]."/$wp_content_folder_name/".$dir_parts[1] ); |
|
| 872 | - } |
|
| 873 | - |
|
| 874 | - return $url; |
|
| 875 | - } |
|
| 876 | - |
|
| 877 | - /** |
|
| 878 | - * Register the database settings with WordPress. |
|
| 879 | - */ |
|
| 880 | - public function register_settings() { |
|
| 881 | - register_setting( 'ayecode-ui-settings', 'ayecode-ui-settings' ); |
|
| 882 | - } |
|
| 883 | - |
|
| 884 | - /** |
|
| 885 | - * Add the WordPress settings menu item. |
|
| 886 | - * @since 1.0.10 Calling function name direct will fail theme check so we don't. |
|
| 887 | - */ |
|
| 888 | - public function menu_item() { |
|
| 889 | - $menu_function = 'add' . '_' . 'options' . '_' . 'page'; // won't pass theme check if function name present in theme |
|
| 890 | - call_user_func( $menu_function, $this->name, $this->name, 'manage_options', 'ayecode-ui-settings', array( |
|
| 891 | - $this, |
|
| 892 | - 'settings_page' |
|
| 893 | - ) ); |
|
| 894 | - } |
|
| 895 | - |
|
| 896 | - /** |
|
| 897 | - * Get a list of themes and their default JS settings. |
|
| 898 | - * |
|
| 899 | - * @return array |
|
| 900 | - */ |
|
| 901 | - public function theme_js_settings(){ |
|
| 902 | - return array( |
|
| 903 | - 'ayetheme' => 'popper', |
|
| 904 | - 'listimia' => 'required', |
|
| 905 | - 'listimia_backend' => 'core-popper', |
|
| 906 | - 'avada' => 'required', |
|
| 907 | - ); |
|
| 908 | - } |
|
| 909 | - |
|
| 910 | - /** |
|
| 911 | - * Get the current Font Awesome output settings. |
|
| 912 | - * |
|
| 913 | - * @return array The array of settings. |
|
| 914 | - */ |
|
| 915 | - public function get_settings() { |
|
| 916 | - |
|
| 917 | - $db_settings = get_option( 'ayecode-ui-settings' ); |
|
| 918 | - $js_default = 'core-popper'; |
|
| 919 | - $js_default_backend = $js_default; |
|
| 920 | - |
|
| 921 | - // maybe set defaults (if no settings set) |
|
| 922 | - if(empty($db_settings)){ |
|
| 923 | - $active_theme = strtolower( get_template() ); // active parent theme. |
|
| 924 | - $theme_js_settings = self::theme_js_settings(); |
|
| 925 | - if(isset($theme_js_settings[$active_theme])){ |
|
| 926 | - $js_default = $theme_js_settings[$active_theme]; |
|
| 927 | - $js_default_backend = isset($theme_js_settings[$active_theme."_backend"]) ? $theme_js_settings[$active_theme."_backend"] : $js_default; |
|
| 928 | - } |
|
| 929 | - } |
|
| 930 | - |
|
| 931 | - $defaults = array( |
|
| 932 | - 'css' => 'compatibility', // core, compatibility |
|
| 933 | - 'js' => $js_default, // js to load, core-popper, popper |
|
| 934 | - 'html_font_size' => '16', // js to load, core-popper, popper |
|
| 935 | - 'css_backend' => 'compatibility', // core, compatibility |
|
| 936 | - 'js_backend' => $js_default_backend, // js to load, core-popper, popper |
|
| 937 | - 'disable_admin' => '', // URL snippets to disable loading on admin |
|
| 938 | - ); |
|
| 939 | - |
|
| 940 | - $settings = wp_parse_args( $db_settings, $defaults ); |
|
| 941 | - |
|
| 942 | - /** |
|
| 943 | - * Filter the Bootstrap settings. |
|
| 944 | - * |
|
| 945 | - * @todo if we add this filer people might use it and then it defeates the purpose of this class :/ |
|
| 946 | - */ |
|
| 947 | - return $this->settings = apply_filters( 'ayecode-ui-settings', $settings, $db_settings, $defaults ); |
|
| 948 | - } |
|
| 949 | - |
|
| 950 | - |
|
| 951 | - /** |
|
| 952 | - * The settings page html output. |
|
| 953 | - */ |
|
| 954 | - public function settings_page() { |
|
| 955 | - if ( ! current_user_can( 'manage_options' ) ) { |
|
| 956 | - wp_die( __( 'You do not have sufficient permissions to access this page.', 'aui' ) ); |
|
| 957 | - } |
|
| 958 | - ?> |
|
| 794 | + return str_replace( array( |
|
| 795 | + '<script>', |
|
| 796 | + '</script>' |
|
| 797 | + ), '', $output ); |
|
| 798 | + } |
|
| 799 | + |
|
| 800 | + /** |
|
| 801 | + * Adds the Font Awesome JS. |
|
| 802 | + */ |
|
| 803 | + public function enqueue_scripts() { |
|
| 804 | + |
|
| 805 | + $js_setting = current_action() == 'wp_enqueue_scripts' ? 'js' : 'js_backend'; |
|
| 806 | + |
|
| 807 | + // select2 |
|
| 808 | + wp_register_script( 'select2', $this->url.'assets/js/select2.min.js', array('jquery'), $this->select2_version ); |
|
| 809 | + |
|
| 810 | + // flatpickr |
|
| 811 | + wp_register_script( 'flatpickr', $this->url.'assets/js/flatpickr.min.js', array(), $this->latest ); |
|
| 812 | + |
|
| 813 | + // Bootstrap file browser |
|
| 814 | + wp_register_script( 'aui-custom-file-input', $url = $this->url.'assets/js/bs-custom-file-input.min.js', array('jquery'), $this->select2_version ); |
|
| 815 | + wp_add_inline_script( 'aui-custom-file-input', $this->inline_script_file_browser() ); |
|
| 816 | + |
|
| 817 | + $load_inline = false; |
|
| 818 | + |
|
| 819 | + if($this->settings[$js_setting]=='core-popper'){ |
|
| 820 | + // Bootstrap bundle |
|
| 821 | + $url = $this->url.'assets/js/bootstrap.bundle.min.js'; |
|
| 822 | + wp_register_script( 'bootstrap-js-bundle', $url, array('select2','jquery'), $this->latest ); |
|
| 823 | + // if in admin then add to footer for compatibility. |
|
| 824 | + is_admin() ? wp_enqueue_script( 'bootstrap-js-bundle', '', null, null, true ) : wp_enqueue_script( 'bootstrap-js-bundle'); |
|
| 825 | + $script = $this->inline_script(); |
|
| 826 | + wp_add_inline_script( 'bootstrap-js-bundle', $script ); |
|
| 827 | + }elseif($this->settings[$js_setting]=='popper'){ |
|
| 828 | + $url = $this->url.'assets/js/popper.min.js'; |
|
| 829 | + wp_register_script( 'bootstrap-js-popper', $url, array('select2','jquery'), $this->latest ); |
|
| 830 | + wp_enqueue_script( 'bootstrap-js-popper' ); |
|
| 831 | + $load_inline = true; |
|
| 832 | + }else{ |
|
| 833 | + $load_inline = true; |
|
| 834 | + } |
|
| 835 | + |
|
| 836 | + // Load needed inline scripts by faking the loading of a script if the main script is not being loaded |
|
| 837 | + if($load_inline){ |
|
| 838 | + wp_register_script( 'bootstrap-dummy', '',array('select2','jquery') ); |
|
| 839 | + wp_enqueue_script( 'bootstrap-dummy' ); |
|
| 840 | + $script = $this->inline_script(); |
|
| 841 | + wp_add_inline_script( 'bootstrap-dummy', $script ); |
|
| 842 | + } |
|
| 843 | + |
|
| 844 | + } |
|
| 845 | + |
|
| 846 | + /** |
|
| 847 | + * Enqueue flatpickr if called. |
|
| 848 | + */ |
|
| 849 | + public function enqueue_flatpickr(){ |
|
| 850 | + wp_enqueue_style( 'flatpickr' ); |
|
| 851 | + wp_enqueue_script( 'flatpickr' ); |
|
| 852 | + } |
|
| 853 | + |
|
| 854 | + /** |
|
| 855 | + * Get the url path to the current folder. |
|
| 856 | + * |
|
| 857 | + * @return string |
|
| 858 | + */ |
|
| 859 | + public function get_url() { |
|
| 860 | + |
|
| 861 | + $url = ''; |
|
| 862 | + // check if we are inside a plugin |
|
| 863 | + $file_dir = str_replace( "/includes","", wp_normalize_path( dirname( __FILE__ ) ) ); |
|
| 864 | + |
|
| 865 | + // add check in-case user has changed wp-content dir name. |
|
| 866 | + $wp_content_folder_name = basename(WP_CONTENT_DIR); |
|
| 867 | + $dir_parts = explode("/$wp_content_folder_name/",$file_dir); |
|
| 868 | + $url_parts = explode("/$wp_content_folder_name/",plugins_url()); |
|
| 869 | + |
|
| 870 | + if(!empty($url_parts[0]) && !empty($dir_parts[1])){ |
|
| 871 | + $url = trailingslashit( $url_parts[0]."/$wp_content_folder_name/".$dir_parts[1] ); |
|
| 872 | + } |
|
| 873 | + |
|
| 874 | + return $url; |
|
| 875 | + } |
|
| 876 | + |
|
| 877 | + /** |
|
| 878 | + * Register the database settings with WordPress. |
|
| 879 | + */ |
|
| 880 | + public function register_settings() { |
|
| 881 | + register_setting( 'ayecode-ui-settings', 'ayecode-ui-settings' ); |
|
| 882 | + } |
|
| 883 | + |
|
| 884 | + /** |
|
| 885 | + * Add the WordPress settings menu item. |
|
| 886 | + * @since 1.0.10 Calling function name direct will fail theme check so we don't. |
|
| 887 | + */ |
|
| 888 | + public function menu_item() { |
|
| 889 | + $menu_function = 'add' . '_' . 'options' . '_' . 'page'; // won't pass theme check if function name present in theme |
|
| 890 | + call_user_func( $menu_function, $this->name, $this->name, 'manage_options', 'ayecode-ui-settings', array( |
|
| 891 | + $this, |
|
| 892 | + 'settings_page' |
|
| 893 | + ) ); |
|
| 894 | + } |
|
| 895 | + |
|
| 896 | + /** |
|
| 897 | + * Get a list of themes and their default JS settings. |
|
| 898 | + * |
|
| 899 | + * @return array |
|
| 900 | + */ |
|
| 901 | + public function theme_js_settings(){ |
|
| 902 | + return array( |
|
| 903 | + 'ayetheme' => 'popper', |
|
| 904 | + 'listimia' => 'required', |
|
| 905 | + 'listimia_backend' => 'core-popper', |
|
| 906 | + 'avada' => 'required', |
|
| 907 | + ); |
|
| 908 | + } |
|
| 909 | + |
|
| 910 | + /** |
|
| 911 | + * Get the current Font Awesome output settings. |
|
| 912 | + * |
|
| 913 | + * @return array The array of settings. |
|
| 914 | + */ |
|
| 915 | + public function get_settings() { |
|
| 916 | + |
|
| 917 | + $db_settings = get_option( 'ayecode-ui-settings' ); |
|
| 918 | + $js_default = 'core-popper'; |
|
| 919 | + $js_default_backend = $js_default; |
|
| 920 | + |
|
| 921 | + // maybe set defaults (if no settings set) |
|
| 922 | + if(empty($db_settings)){ |
|
| 923 | + $active_theme = strtolower( get_template() ); // active parent theme. |
|
| 924 | + $theme_js_settings = self::theme_js_settings(); |
|
| 925 | + if(isset($theme_js_settings[$active_theme])){ |
|
| 926 | + $js_default = $theme_js_settings[$active_theme]; |
|
| 927 | + $js_default_backend = isset($theme_js_settings[$active_theme."_backend"]) ? $theme_js_settings[$active_theme."_backend"] : $js_default; |
|
| 928 | + } |
|
| 929 | + } |
|
| 930 | + |
|
| 931 | + $defaults = array( |
|
| 932 | + 'css' => 'compatibility', // core, compatibility |
|
| 933 | + 'js' => $js_default, // js to load, core-popper, popper |
|
| 934 | + 'html_font_size' => '16', // js to load, core-popper, popper |
|
| 935 | + 'css_backend' => 'compatibility', // core, compatibility |
|
| 936 | + 'js_backend' => $js_default_backend, // js to load, core-popper, popper |
|
| 937 | + 'disable_admin' => '', // URL snippets to disable loading on admin |
|
| 938 | + ); |
|
| 939 | + |
|
| 940 | + $settings = wp_parse_args( $db_settings, $defaults ); |
|
| 941 | + |
|
| 942 | + /** |
|
| 943 | + * Filter the Bootstrap settings. |
|
| 944 | + * |
|
| 945 | + * @todo if we add this filer people might use it and then it defeates the purpose of this class :/ |
|
| 946 | + */ |
|
| 947 | + return $this->settings = apply_filters( 'ayecode-ui-settings', $settings, $db_settings, $defaults ); |
|
| 948 | + } |
|
| 949 | + |
|
| 950 | + |
|
| 951 | + /** |
|
| 952 | + * The settings page html output. |
|
| 953 | + */ |
|
| 954 | + public function settings_page() { |
|
| 955 | + if ( ! current_user_can( 'manage_options' ) ) { |
|
| 956 | + wp_die( __( 'You do not have sufficient permissions to access this page.', 'aui' ) ); |
|
| 957 | + } |
|
| 958 | + ?> |
|
| 959 | 959 | <div class="wrap"> |
| 960 | 960 | <h1><?php echo $this->name; ?></h1> |
| 961 | 961 | <p><?php _e("Here you can adjust settings if you are having compatibility issues.","aui");?></p> |
| 962 | 962 | <form method="post" action="options.php"> |
| 963 | 963 | <?php |
| 964 | - settings_fields( 'ayecode-ui-settings' ); |
|
| 965 | - do_settings_sections( 'ayecode-ui-settings' ); |
|
| 966 | - ?> |
|
| 964 | + settings_fields( 'ayecode-ui-settings' ); |
|
| 965 | + do_settings_sections( 'ayecode-ui-settings' ); |
|
| 966 | + ?> |
|
| 967 | 967 | |
| 968 | 968 | <h2><?php _e( 'Frontend', 'aui' ); ?></h2> |
| 969 | 969 | <table class="form-table wpbs-table-settings"> |
@@ -1043,55 +1043,55 @@ discard block |
||
| 1043 | 1043 | </table> |
| 1044 | 1044 | |
| 1045 | 1045 | <?php |
| 1046 | - submit_button(); |
|
| 1047 | - ?> |
|
| 1046 | + submit_button(); |
|
| 1047 | + ?> |
|
| 1048 | 1048 | </form> |
| 1049 | 1049 | |
| 1050 | 1050 | <div id="wpbs-version"><?php echo $this->version; ?></div> |
| 1051 | 1051 | </div> |
| 1052 | 1052 | |
| 1053 | 1053 | <?php |
| 1054 | - } |
|
| 1055 | - |
|
| 1056 | - public function customizer_settings($wp_customize){ |
|
| 1057 | - $wp_customize->add_section('aui_settings', array( |
|
| 1058 | - 'title' => __('AyeCode UI','aui'), |
|
| 1059 | - 'priority' => 120, |
|
| 1060 | - )); |
|
| 1061 | - |
|
| 1062 | - // ============================= |
|
| 1063 | - // = Color Picker = |
|
| 1064 | - // ============================= |
|
| 1065 | - $wp_customize->add_setting('aui_options[color_primary]', array( |
|
| 1066 | - 'default' => AUI_PRIMARY_COLOR, |
|
| 1067 | - 'sanitize_callback' => 'sanitize_hex_color', |
|
| 1068 | - 'capability' => 'edit_theme_options', |
|
| 1069 | - 'type' => 'option', |
|
| 1070 | - 'transport' => 'refresh', |
|
| 1071 | - )); |
|
| 1072 | - $wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_primary', array( |
|
| 1073 | - 'label' => __('Primary Color','aui'), |
|
| 1074 | - 'section' => 'aui_settings', |
|
| 1075 | - 'settings' => 'aui_options[color_primary]', |
|
| 1076 | - ))); |
|
| 1077 | - |
|
| 1078 | - $wp_customize->add_setting('aui_options[color_secondary]', array( |
|
| 1079 | - 'default' => '#6c757d', |
|
| 1080 | - 'sanitize_callback' => 'sanitize_hex_color', |
|
| 1081 | - 'capability' => 'edit_theme_options', |
|
| 1082 | - 'type' => 'option', |
|
| 1083 | - 'transport' => 'refresh', |
|
| 1084 | - )); |
|
| 1085 | - $wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_secondary', array( |
|
| 1086 | - 'label' => __('Secondary Color','aui'), |
|
| 1087 | - 'section' => 'aui_settings', |
|
| 1088 | - 'settings' => 'aui_options[color_secondary]', |
|
| 1089 | - ))); |
|
| 1090 | - } |
|
| 1091 | - |
|
| 1092 | - public static function bs3_compat_css() { |
|
| 1093 | - ob_start(); |
|
| 1094 | - ?> |
|
| 1054 | + } |
|
| 1055 | + |
|
| 1056 | + public function customizer_settings($wp_customize){ |
|
| 1057 | + $wp_customize->add_section('aui_settings', array( |
|
| 1058 | + 'title' => __('AyeCode UI','aui'), |
|
| 1059 | + 'priority' => 120, |
|
| 1060 | + )); |
|
| 1061 | + |
|
| 1062 | + // ============================= |
|
| 1063 | + // = Color Picker = |
|
| 1064 | + // ============================= |
|
| 1065 | + $wp_customize->add_setting('aui_options[color_primary]', array( |
|
| 1066 | + 'default' => AUI_PRIMARY_COLOR, |
|
| 1067 | + 'sanitize_callback' => 'sanitize_hex_color', |
|
| 1068 | + 'capability' => 'edit_theme_options', |
|
| 1069 | + 'type' => 'option', |
|
| 1070 | + 'transport' => 'refresh', |
|
| 1071 | + )); |
|
| 1072 | + $wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_primary', array( |
|
| 1073 | + 'label' => __('Primary Color','aui'), |
|
| 1074 | + 'section' => 'aui_settings', |
|
| 1075 | + 'settings' => 'aui_options[color_primary]', |
|
| 1076 | + ))); |
|
| 1077 | + |
|
| 1078 | + $wp_customize->add_setting('aui_options[color_secondary]', array( |
|
| 1079 | + 'default' => '#6c757d', |
|
| 1080 | + 'sanitize_callback' => 'sanitize_hex_color', |
|
| 1081 | + 'capability' => 'edit_theme_options', |
|
| 1082 | + 'type' => 'option', |
|
| 1083 | + 'transport' => 'refresh', |
|
| 1084 | + )); |
|
| 1085 | + $wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_secondary', array( |
|
| 1086 | + 'label' => __('Secondary Color','aui'), |
|
| 1087 | + 'section' => 'aui_settings', |
|
| 1088 | + 'settings' => 'aui_options[color_secondary]', |
|
| 1089 | + ))); |
|
| 1090 | + } |
|
| 1091 | + |
|
| 1092 | + public static function bs3_compat_css() { |
|
| 1093 | + ob_start(); |
|
| 1094 | + ?> |
|
| 1095 | 1095 | /* Bootstrap 3 compatibility */ |
| 1096 | 1096 | body.modal-open .modal-backdrop.show:not(.in) {opacity:0.5;} |
| 1097 | 1097 | body.modal-open .modal.show:not(.in) {opacity:1;z-index: 99999} |
@@ -1109,453 +1109,453 @@ discard block |
||
| 1109 | 1109 | |
| 1110 | 1110 | body.modal-open .modal.bsui .modal-dialog{left: auto;} |
| 1111 | 1111 | <?php |
| 1112 | - return ob_get_clean(); |
|
| 1113 | - } |
|
| 1112 | + return ob_get_clean(); |
|
| 1113 | + } |
|
| 1114 | 1114 | |
| 1115 | 1115 | |
| 1116 | - public static function custom_css($compatibility = true) { |
|
| 1117 | - $settings = get_option('aui_options'); |
|
| 1116 | + public static function custom_css($compatibility = true) { |
|
| 1117 | + $settings = get_option('aui_options'); |
|
| 1118 | 1118 | |
| 1119 | - ob_start(); |
|
| 1119 | + ob_start(); |
|
| 1120 | 1120 | |
| 1121 | - $primary_color = !empty($settings['color_primary']) ? $settings['color_primary'] : AUI_PRIMARY_COLOR; |
|
| 1122 | - $secondary_color = !empty($settings['color_secondary']) ? $settings['color_secondary'] : AUI_SECONDARY_COLOR; |
|
| 1123 | - //AUI_PRIMARY_COLOR_ORIGINAL |
|
| 1124 | - ?> |
|
| 1121 | + $primary_color = !empty($settings['color_primary']) ? $settings['color_primary'] : AUI_PRIMARY_COLOR; |
|
| 1122 | + $secondary_color = !empty($settings['color_secondary']) ? $settings['color_secondary'] : AUI_SECONDARY_COLOR; |
|
| 1123 | + //AUI_PRIMARY_COLOR_ORIGINAL |
|
| 1124 | + ?> |
|
| 1125 | 1125 | <style> |
| 1126 | 1126 | |
| 1127 | 1127 | |
| 1128 | 1128 | |
| 1129 | 1129 | <?php |
| 1130 | 1130 | |
| 1131 | - // BS compat @todo add option check |
|
| 1132 | - //echo self::bs3_compat_css(); |
|
| 1131 | + // BS compat @todo add option check |
|
| 1132 | + //echo self::bs3_compat_css(); |
|
| 1133 | 1133 | |
| 1134 | - if(!is_admin() && $primary_color != AUI_PRIMARY_COLOR_ORIGINAL){ |
|
| 1135 | - echo self::css_primary($primary_color,$compatibility); |
|
| 1136 | - } |
|
| 1134 | + if(!is_admin() && $primary_color != AUI_PRIMARY_COLOR_ORIGINAL){ |
|
| 1135 | + echo self::css_primary($primary_color,$compatibility); |
|
| 1136 | + } |
|
| 1137 | 1137 | |
| 1138 | - if(!is_admin() && $secondary_color != AUI_SECONDARY_COLOR_ORIGINAL){ |
|
| 1139 | - echo self::css_secondary($settings['color_secondary'],$compatibility); |
|
| 1140 | - } |
|
| 1138 | + if(!is_admin() && $secondary_color != AUI_SECONDARY_COLOR_ORIGINAL){ |
|
| 1139 | + echo self::css_secondary($settings['color_secondary'],$compatibility); |
|
| 1140 | + } |
|
| 1141 | 1141 | ?> |
| 1142 | 1142 | </style> |
| 1143 | 1143 | <?php |
| 1144 | 1144 | |
| 1145 | 1145 | |
| 1146 | - /* |
|
| 1146 | + /* |
|
| 1147 | 1147 | * We only add the <script> tags for code highlighting, so we strip them from the output. |
| 1148 | 1148 | */ |
| 1149 | - return str_replace( array( |
|
| 1150 | - '<style>', |
|
| 1151 | - '</style>' |
|
| 1152 | - ), '', ob_get_clean()); |
|
| 1153 | - } |
|
| 1154 | - |
|
| 1155 | - public static function css_primary($color_code,$compatibility){; |
|
| 1156 | - $color_code = sanitize_hex_color($color_code); |
|
| 1157 | - if(!$color_code){return '';} |
|
| 1158 | - /** |
|
| 1159 | - * c = color, b = background color, o = border-color, f = fill |
|
| 1160 | - */ |
|
| 1161 | - $selectors = array( |
|
| 1162 | - 'a' => array('c'), |
|
| 1163 | - '.btn-primary' => array('b','o'), |
|
| 1164 | - '.btn-primary.disabled' => array('b','o'), |
|
| 1165 | - '.btn-primary:disabled' => array('b','o'), |
|
| 1166 | - '.btn-outline-primary' => array('c','o'), |
|
| 1167 | - '.btn-outline-primary:hover' => array('b','o'), |
|
| 1168 | - '.btn-outline-primary:not(:disabled):not(.disabled).active' => array('b','o'), |
|
| 1169 | - '.btn-outline-primary:not(:disabled):not(.disabled):active' => array('b','o'), |
|
| 1170 | - '.show>.btn-outline-primary.dropdown-toggle' => array('b','o'), |
|
| 1171 | - '.btn-link' => array('c'), |
|
| 1172 | - '.dropdown-item.active' => array('b'), |
|
| 1173 | - '.custom-control-input:checked~.custom-control-label::before' => array('b','o'), |
|
| 1174 | - '.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before' => array('b','o'), |
|
| 1149 | + return str_replace( array( |
|
| 1150 | + '<style>', |
|
| 1151 | + '</style>' |
|
| 1152 | + ), '', ob_get_clean()); |
|
| 1153 | + } |
|
| 1154 | + |
|
| 1155 | + public static function css_primary($color_code,$compatibility){; |
|
| 1156 | + $color_code = sanitize_hex_color($color_code); |
|
| 1157 | + if(!$color_code){return '';} |
|
| 1158 | + /** |
|
| 1159 | + * c = color, b = background color, o = border-color, f = fill |
|
| 1160 | + */ |
|
| 1161 | + $selectors = array( |
|
| 1162 | + 'a' => array('c'), |
|
| 1163 | + '.btn-primary' => array('b','o'), |
|
| 1164 | + '.btn-primary.disabled' => array('b','o'), |
|
| 1165 | + '.btn-primary:disabled' => array('b','o'), |
|
| 1166 | + '.btn-outline-primary' => array('c','o'), |
|
| 1167 | + '.btn-outline-primary:hover' => array('b','o'), |
|
| 1168 | + '.btn-outline-primary:not(:disabled):not(.disabled).active' => array('b','o'), |
|
| 1169 | + '.btn-outline-primary:not(:disabled):not(.disabled):active' => array('b','o'), |
|
| 1170 | + '.show>.btn-outline-primary.dropdown-toggle' => array('b','o'), |
|
| 1171 | + '.btn-link' => array('c'), |
|
| 1172 | + '.dropdown-item.active' => array('b'), |
|
| 1173 | + '.custom-control-input:checked~.custom-control-label::before' => array('b','o'), |
|
| 1174 | + '.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before' => array('b','o'), |
|
| 1175 | 1175 | // '.custom-range::-webkit-slider-thumb' => array('b'), // these break the inline rules... |
| 1176 | 1176 | // '.custom-range::-moz-range-thumb' => array('b'), |
| 1177 | 1177 | // '.custom-range::-ms-thumb' => array('b'), |
| 1178 | - '.nav-pills .nav-link.active' => array('b'), |
|
| 1179 | - '.nav-pills .show>.nav-link' => array('b'), |
|
| 1180 | - '.page-link' => array('c'), |
|
| 1181 | - '.page-item.active .page-link' => array('b','o'), |
|
| 1182 | - '.badge-primary' => array('b'), |
|
| 1183 | - '.alert-primary' => array('b','o'), |
|
| 1184 | - '.progress-bar' => array('b'), |
|
| 1185 | - '.list-group-item.active' => array('b','o'), |
|
| 1186 | - '.bg-primary' => array('b','f'), |
|
| 1187 | - '.btn-link.btn-primary' => array('c'), |
|
| 1188 | - '.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array('b'), |
|
| 1189 | - ); |
|
| 1190 | - |
|
| 1191 | - $important_selectors = array( |
|
| 1192 | - '.bg-primary' => array('b','f'), |
|
| 1193 | - '.border-primary' => array('o'), |
|
| 1194 | - '.text-primary' => array('c'), |
|
| 1195 | - ); |
|
| 1196 | - |
|
| 1197 | - $color = array(); |
|
| 1198 | - $color_i = array(); |
|
| 1199 | - $background = array(); |
|
| 1200 | - $background_i = array(); |
|
| 1201 | - $border = array(); |
|
| 1202 | - $border_i = array(); |
|
| 1203 | - $fill = array(); |
|
| 1204 | - $fill_i = array(); |
|
| 1205 | - |
|
| 1206 | - $output = ''; |
|
| 1207 | - |
|
| 1208 | - // build rules into each type |
|
| 1209 | - foreach($selectors as $selector => $types){ |
|
| 1210 | - $selector = $compatibility ? ".bsui ".$selector : $selector; |
|
| 1211 | - $types = array_combine($types,$types); |
|
| 1212 | - if(isset($types['c'])){$color[] = $selector;} |
|
| 1213 | - if(isset($types['b'])){$background[] = $selector;} |
|
| 1214 | - if(isset($types['o'])){$border[] = $selector;} |
|
| 1215 | - if(isset($types['f'])){$fill[] = $selector;} |
|
| 1216 | - } |
|
| 1217 | - |
|
| 1218 | - // build rules into each type |
|
| 1219 | - foreach($important_selectors as $selector => $types){ |
|
| 1220 | - $selector = $compatibility ? ".bsui ".$selector : $selector; |
|
| 1221 | - $types = array_combine($types,$types); |
|
| 1222 | - if(isset($types['c'])){$color_i[] = $selector;} |
|
| 1223 | - if(isset($types['b'])){$background_i[] = $selector;} |
|
| 1224 | - if(isset($types['o'])){$border_i[] = $selector;} |
|
| 1225 | - if(isset($types['f'])){$fill_i[] = $selector;} |
|
| 1226 | - } |
|
| 1227 | - |
|
| 1228 | - // add any color rules |
|
| 1229 | - if(!empty($color)){ |
|
| 1230 | - $output .= implode(",",$color) . "{color: $color_code;} "; |
|
| 1231 | - } |
|
| 1232 | - if(!empty($color_i)){ |
|
| 1233 | - $output .= implode(",",$color_i) . "{color: $color_code !important;} "; |
|
| 1234 | - } |
|
| 1235 | - |
|
| 1236 | - // add any background color rules |
|
| 1237 | - if(!empty($background)){ |
|
| 1238 | - $output .= implode(",",$background) . "{background-color: $color_code;} "; |
|
| 1239 | - } |
|
| 1240 | - if(!empty($background_i)){ |
|
| 1241 | - $output .= implode(",",$background_i) . "{background-color: $color_code !important;} "; |
|
| 1242 | - } |
|
| 1243 | - |
|
| 1244 | - // add any border color rules |
|
| 1245 | - if(!empty($border)){ |
|
| 1246 | - $output .= implode(",",$border) . "{border-color: $color_code;} "; |
|
| 1247 | - } |
|
| 1248 | - if(!empty($border_i)){ |
|
| 1249 | - $output .= implode(",",$border_i) . "{border-color: $color_code !important;} "; |
|
| 1250 | - } |
|
| 1251 | - |
|
| 1252 | - // add any fill color rules |
|
| 1253 | - if(!empty($fill)){ |
|
| 1254 | - $output .= implode(",",$fill) . "{fill: $color_code;} "; |
|
| 1255 | - } |
|
| 1256 | - if(!empty($fill_i)){ |
|
| 1257 | - $output .= implode(",",$fill_i) . "{fill: $color_code !important;} "; |
|
| 1258 | - } |
|
| 1259 | - |
|
| 1260 | - |
|
| 1261 | - $prefix = $compatibility ? ".bsui " : ""; |
|
| 1262 | - |
|
| 1263 | - // darken |
|
| 1264 | - $darker_075 = self::css_hex_lighten_darken($color_code,"-0.075"); |
|
| 1265 | - $darker_10 = self::css_hex_lighten_darken($color_code,"-0.10"); |
|
| 1266 | - $darker_125 = self::css_hex_lighten_darken($color_code,"-0.125"); |
|
| 1267 | - |
|
| 1268 | - // lighten |
|
| 1269 | - $lighten_25 = self::css_hex_lighten_darken($color_code,"0.25"); |
|
| 1270 | - |
|
| 1271 | - // opacity see https://css-tricks.com/8-digit-hex-codes/ |
|
| 1272 | - $op_25 = $color_code."40"; // 25% opacity |
|
| 1273 | - |
|
| 1274 | - |
|
| 1275 | - // button states |
|
| 1276 | - $output .= $prefix ." .btn-primary:hover{background-color: ".$darker_075."; border-color: ".$darker_10.";} "; |
|
| 1277 | - $output .= $prefix ." .btn-outline-primary:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-primary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-primary.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
| 1278 | - $output .= $prefix ." .btn-primary:not(:disabled):not(.disabled):active, $prefix .btn-primary:not(:disabled):not(.disabled).active, .show>$prefix .btn-primary.dropdown-toggle{background-color: ".$darker_10."; border-color: ".$darker_125.";} "; |
|
| 1279 | - $output .= $prefix ." .btn-primary:not(:disabled):not(.disabled):active:focus, $prefix .btn-primary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-primary.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
| 1280 | - |
|
| 1281 | - |
|
| 1282 | - // dropdown's |
|
| 1283 | - $output .= $prefix ." .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} "; |
|
| 1284 | - |
|
| 1285 | - |
|
| 1286 | - // input states |
|
| 1287 | - $output .= $prefix ." .form-control:focus{border-color: ".$lighten_25.";box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
| 1288 | - |
|
| 1289 | - // page link |
|
| 1290 | - $output .= $prefix ." .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
| 1291 | - |
|
| 1292 | - return $output; |
|
| 1293 | - } |
|
| 1294 | - |
|
| 1295 | - public static function css_secondary($color_code,$compatibility){; |
|
| 1296 | - $color_code = sanitize_hex_color($color_code); |
|
| 1297 | - if(!$color_code){return '';} |
|
| 1298 | - /** |
|
| 1299 | - * c = color, b = background color, o = border-color, f = fill |
|
| 1300 | - */ |
|
| 1301 | - $selectors = array( |
|
| 1302 | - '.btn-secondary' => array('b','o'), |
|
| 1303 | - '.btn-secondary.disabled' => array('b','o'), |
|
| 1304 | - '.btn-secondary:disabled' => array('b','o'), |
|
| 1305 | - '.btn-outline-secondary' => array('c','o'), |
|
| 1306 | - '.btn-outline-secondary:hover' => array('b','o'), |
|
| 1307 | - '.btn-outline-secondary.disabled' => array('c'), |
|
| 1308 | - '.btn-outline-secondary:disabled' => array('c'), |
|
| 1309 | - '.btn-outline-secondary:not(:disabled):not(.disabled):active' => array('b','o'), |
|
| 1310 | - '.btn-outline-secondary:not(:disabled):not(.disabled).active' => array('b','o'), |
|
| 1311 | - '.btn-outline-secondary.dropdown-toggle' => array('b','o'), |
|
| 1312 | - '.badge-secondary' => array('b'), |
|
| 1313 | - '.alert-secondary' => array('b','o'), |
|
| 1314 | - '.btn-link.btn-secondary' => array('c'), |
|
| 1315 | - ); |
|
| 1316 | - |
|
| 1317 | - $important_selectors = array( |
|
| 1318 | - '.bg-secondary' => array('b','f'), |
|
| 1319 | - '.border-secondary' => array('o'), |
|
| 1320 | - '.text-secondary' => array('c'), |
|
| 1321 | - ); |
|
| 1322 | - |
|
| 1323 | - $color = array(); |
|
| 1324 | - $color_i = array(); |
|
| 1325 | - $background = array(); |
|
| 1326 | - $background_i = array(); |
|
| 1327 | - $border = array(); |
|
| 1328 | - $border_i = array(); |
|
| 1329 | - $fill = array(); |
|
| 1330 | - $fill_i = array(); |
|
| 1331 | - |
|
| 1332 | - $output = ''; |
|
| 1333 | - |
|
| 1334 | - // build rules into each type |
|
| 1335 | - foreach($selectors as $selector => $types){ |
|
| 1336 | - $selector = $compatibility ? ".bsui ".$selector : $selector; |
|
| 1337 | - $types = array_combine($types,$types); |
|
| 1338 | - if(isset($types['c'])){$color[] = $selector;} |
|
| 1339 | - if(isset($types['b'])){$background[] = $selector;} |
|
| 1340 | - if(isset($types['o'])){$border[] = $selector;} |
|
| 1341 | - if(isset($types['f'])){$fill[] = $selector;} |
|
| 1342 | - } |
|
| 1343 | - |
|
| 1344 | - // build rules into each type |
|
| 1345 | - foreach($important_selectors as $selector => $types){ |
|
| 1346 | - $selector = $compatibility ? ".bsui ".$selector : $selector; |
|
| 1347 | - $types = array_combine($types,$types); |
|
| 1348 | - if(isset($types['c'])){$color_i[] = $selector;} |
|
| 1349 | - if(isset($types['b'])){$background_i[] = $selector;} |
|
| 1350 | - if(isset($types['o'])){$border_i[] = $selector;} |
|
| 1351 | - if(isset($types['f'])){$fill_i[] = $selector;} |
|
| 1352 | - } |
|
| 1353 | - |
|
| 1354 | - // add any color rules |
|
| 1355 | - if(!empty($color)){ |
|
| 1356 | - $output .= implode(",",$color) . "{color: $color_code;} "; |
|
| 1357 | - } |
|
| 1358 | - if(!empty($color_i)){ |
|
| 1359 | - $output .= implode(",",$color_i) . "{color: $color_code !important;} "; |
|
| 1360 | - } |
|
| 1361 | - |
|
| 1362 | - // add any background color rules |
|
| 1363 | - if(!empty($background)){ |
|
| 1364 | - $output .= implode(",",$background) . "{background-color: $color_code;} "; |
|
| 1365 | - } |
|
| 1366 | - if(!empty($background_i)){ |
|
| 1367 | - $output .= implode(",",$background_i) . "{background-color: $color_code !important;} "; |
|
| 1368 | - } |
|
| 1369 | - |
|
| 1370 | - // add any border color rules |
|
| 1371 | - if(!empty($border)){ |
|
| 1372 | - $output .= implode(",",$border) . "{border-color: $color_code;} "; |
|
| 1373 | - } |
|
| 1374 | - if(!empty($border_i)){ |
|
| 1375 | - $output .= implode(",",$border_i) . "{border-color: $color_code !important;} "; |
|
| 1376 | - } |
|
| 1377 | - |
|
| 1378 | - // add any fill color rules |
|
| 1379 | - if(!empty($fill)){ |
|
| 1380 | - $output .= implode(",",$fill) . "{fill: $color_code;} "; |
|
| 1381 | - } |
|
| 1382 | - if(!empty($fill_i)){ |
|
| 1383 | - $output .= implode(",",$fill_i) . "{fill: $color_code !important;} "; |
|
| 1384 | - } |
|
| 1385 | - |
|
| 1386 | - |
|
| 1387 | - $prefix = $compatibility ? ".bsui " : ""; |
|
| 1388 | - |
|
| 1389 | - // darken |
|
| 1390 | - $darker_075 = self::css_hex_lighten_darken($color_code,"-0.075"); |
|
| 1391 | - $darker_10 = self::css_hex_lighten_darken($color_code,"-0.10"); |
|
| 1392 | - $darker_125 = self::css_hex_lighten_darken($color_code,"-0.125"); |
|
| 1393 | - |
|
| 1394 | - // lighten |
|
| 1395 | - $lighten_25 = self::css_hex_lighten_darken($color_code,"0.25"); |
|
| 1396 | - |
|
| 1397 | - // opacity see https://css-tricks.com/8-digit-hex-codes/ |
|
| 1398 | - $op_25 = $color_code."40"; // 25% opacity |
|
| 1399 | - |
|
| 1400 | - |
|
| 1401 | - // button states |
|
| 1402 | - $output .= $prefix ." .btn-secondary:hover{background-color: ".$darker_075."; border-color: ".$darker_10.";} "; |
|
| 1403 | - $output .= $prefix ." .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-secondary.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
| 1404 | - $output .= $prefix ." .btn-secondary:not(:disabled):not(.disabled):active, $prefix .btn-secondary:not(:disabled):not(.disabled).active, .show>$prefix .btn-secondary.dropdown-toggle{background-color: ".$darker_10."; border-color: ".$darker_125.";} "; |
|
| 1405 | - $output .= $prefix ." .btn-secondary:not(:disabled):not(.disabled):active:focus, $prefix .btn-secondary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-secondary.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
| 1406 | - |
|
| 1407 | - |
|
| 1408 | - return $output; |
|
| 1409 | - } |
|
| 1410 | - |
|
| 1411 | - /** |
|
| 1412 | - * Increases or decreases the brightness of a color by a percentage of the current brightness. |
|
| 1413 | - * |
|
| 1414 | - * @param string $hexCode Supported formats: `#FFF`, `#FFFFFF`, `FFF`, `FFFFFF` |
|
| 1415 | - * @param float $adjustPercent A number between -1 and 1. E.g. 0.3 = 30% lighter; -0.4 = 40% darker. |
|
| 1416 | - * |
|
| 1417 | - * @return string |
|
| 1418 | - */ |
|
| 1419 | - public static function css_hex_lighten_darken($hexCode, $adjustPercent) { |
|
| 1420 | - $hexCode = ltrim($hexCode, '#'); |
|
| 1421 | - |
|
| 1422 | - if (strlen($hexCode) == 3) { |
|
| 1423 | - $hexCode = $hexCode[0] . $hexCode[0] . $hexCode[1] . $hexCode[1] . $hexCode[2] . $hexCode[2]; |
|
| 1424 | - } |
|
| 1425 | - |
|
| 1426 | - $hexCode = array_map('hexdec', str_split($hexCode, 2)); |
|
| 1427 | - |
|
| 1428 | - foreach ($hexCode as & $color) { |
|
| 1429 | - $adjustableLimit = $adjustPercent < 0 ? $color : 255 - $color; |
|
| 1430 | - $adjustAmount = ceil($adjustableLimit * $adjustPercent); |
|
| 1431 | - |
|
| 1432 | - $color = str_pad(dechex($color + $adjustAmount), 2, '0', STR_PAD_LEFT); |
|
| 1433 | - } |
|
| 1434 | - |
|
| 1435 | - return '#' . implode($hexCode); |
|
| 1436 | - } |
|
| 1437 | - |
|
| 1438 | - /** |
|
| 1439 | - * Check if we should display examples. |
|
| 1440 | - */ |
|
| 1441 | - public function maybe_show_examples(){ |
|
| 1442 | - if(current_user_can('manage_options') && isset($_REQUEST['preview-aui'])){ |
|
| 1443 | - echo "<head>"; |
|
| 1444 | - wp_head(); |
|
| 1445 | - echo "</head>"; |
|
| 1446 | - echo "<body>"; |
|
| 1447 | - echo $this->get_examples(); |
|
| 1448 | - echo "</body>"; |
|
| 1449 | - exit; |
|
| 1450 | - } |
|
| 1451 | - } |
|
| 1452 | - |
|
| 1453 | - /** |
|
| 1454 | - * Get developer examples. |
|
| 1455 | - * |
|
| 1456 | - * @return string |
|
| 1457 | - */ |
|
| 1458 | - public function get_examples(){ |
|
| 1459 | - $output = ''; |
|
| 1460 | - |
|
| 1461 | - |
|
| 1462 | - // open form |
|
| 1463 | - $output .= "<form class='p-5 m-5 border rounded'>"; |
|
| 1464 | - |
|
| 1465 | - // input example |
|
| 1466 | - $output .= aui()->input(array( |
|
| 1467 | - 'type' => 'text', |
|
| 1468 | - 'id' => 'text-example', |
|
| 1469 | - 'name' => 'text-example', |
|
| 1470 | - 'placeholder' => 'text placeholder', |
|
| 1471 | - 'title' => 'Text input example', |
|
| 1472 | - 'value' => '', |
|
| 1473 | - 'required' => false, |
|
| 1474 | - 'help_text' => 'help text', |
|
| 1475 | - 'label' => 'Text input example label' |
|
| 1476 | - )); |
|
| 1477 | - |
|
| 1478 | - // input example |
|
| 1479 | - $output .= aui()->input(array( |
|
| 1480 | - 'type' => 'url', |
|
| 1481 | - 'id' => 'text-example2', |
|
| 1482 | - 'name' => 'text-example', |
|
| 1483 | - 'placeholder' => 'url placeholder', |
|
| 1484 | - 'title' => 'Text input example', |
|
| 1485 | - 'value' => '', |
|
| 1486 | - 'required' => false, |
|
| 1487 | - 'help_text' => 'help text', |
|
| 1488 | - 'label' => 'Text input example label' |
|
| 1489 | - )); |
|
| 1490 | - |
|
| 1491 | - // checkbox example |
|
| 1492 | - $output .= aui()->input(array( |
|
| 1493 | - 'type' => 'checkbox', |
|
| 1494 | - 'id' => 'checkbox-example', |
|
| 1495 | - 'name' => 'checkbox-example', |
|
| 1496 | - 'placeholder' => 'checkbox-example', |
|
| 1497 | - 'title' => 'Checkbox example', |
|
| 1498 | - 'value' => '1', |
|
| 1499 | - 'checked' => true, |
|
| 1500 | - 'required' => false, |
|
| 1501 | - 'help_text' => 'help text', |
|
| 1502 | - 'label' => 'Checkbox checked' |
|
| 1503 | - )); |
|
| 1504 | - |
|
| 1505 | - // checkbox example |
|
| 1506 | - $output .= aui()->input(array( |
|
| 1507 | - 'type' => 'checkbox', |
|
| 1508 | - 'id' => 'checkbox-example2', |
|
| 1509 | - 'name' => 'checkbox-example2', |
|
| 1510 | - 'placeholder' => 'checkbox-example', |
|
| 1511 | - 'title' => 'Checkbox example', |
|
| 1512 | - 'value' => '1', |
|
| 1513 | - 'checked' => false, |
|
| 1514 | - 'required' => false, |
|
| 1515 | - 'help_text' => 'help text', |
|
| 1516 | - 'label' => 'Checkbox un-checked' |
|
| 1517 | - )); |
|
| 1518 | - |
|
| 1519 | - // switch example |
|
| 1520 | - $output .= aui()->input(array( |
|
| 1521 | - 'type' => 'checkbox', |
|
| 1522 | - 'id' => 'switch-example', |
|
| 1523 | - 'name' => 'switch-example', |
|
| 1524 | - 'placeholder' => 'checkbox-example', |
|
| 1525 | - 'title' => 'Switch example', |
|
| 1526 | - 'value' => '1', |
|
| 1527 | - 'checked' => true, |
|
| 1528 | - 'switch' => true, |
|
| 1529 | - 'required' => false, |
|
| 1530 | - 'help_text' => 'help text', |
|
| 1531 | - 'label' => 'Switch on' |
|
| 1532 | - )); |
|
| 1533 | - |
|
| 1534 | - // switch example |
|
| 1535 | - $output .= aui()->input(array( |
|
| 1536 | - 'type' => 'checkbox', |
|
| 1537 | - 'id' => 'switch-example2', |
|
| 1538 | - 'name' => 'switch-example2', |
|
| 1539 | - 'placeholder' => 'checkbox-example', |
|
| 1540 | - 'title' => 'Switch example', |
|
| 1541 | - 'value' => '1', |
|
| 1542 | - 'checked' => false, |
|
| 1543 | - 'switch' => true, |
|
| 1544 | - 'required' => false, |
|
| 1545 | - 'help_text' => 'help text', |
|
| 1546 | - 'label' => 'Switch off' |
|
| 1547 | - )); |
|
| 1548 | - |
|
| 1549 | - // close form |
|
| 1550 | - $output .= "</form>"; |
|
| 1551 | - |
|
| 1552 | - return $output; |
|
| 1553 | - } |
|
| 1554 | - |
|
| 1555 | - } |
|
| 1556 | - |
|
| 1557 | - /** |
|
| 1558 | - * Run the class if found. |
|
| 1559 | - */ |
|
| 1560 | - AyeCode_UI_Settings::instance(); |
|
| 1178 | + '.nav-pills .nav-link.active' => array('b'), |
|
| 1179 | + '.nav-pills .show>.nav-link' => array('b'), |
|
| 1180 | + '.page-link' => array('c'), |
|
| 1181 | + '.page-item.active .page-link' => array('b','o'), |
|
| 1182 | + '.badge-primary' => array('b'), |
|
| 1183 | + '.alert-primary' => array('b','o'), |
|
| 1184 | + '.progress-bar' => array('b'), |
|
| 1185 | + '.list-group-item.active' => array('b','o'), |
|
| 1186 | + '.bg-primary' => array('b','f'), |
|
| 1187 | + '.btn-link.btn-primary' => array('c'), |
|
| 1188 | + '.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array('b'), |
|
| 1189 | + ); |
|
| 1190 | + |
|
| 1191 | + $important_selectors = array( |
|
| 1192 | + '.bg-primary' => array('b','f'), |
|
| 1193 | + '.border-primary' => array('o'), |
|
| 1194 | + '.text-primary' => array('c'), |
|
| 1195 | + ); |
|
| 1196 | + |
|
| 1197 | + $color = array(); |
|
| 1198 | + $color_i = array(); |
|
| 1199 | + $background = array(); |
|
| 1200 | + $background_i = array(); |
|
| 1201 | + $border = array(); |
|
| 1202 | + $border_i = array(); |
|
| 1203 | + $fill = array(); |
|
| 1204 | + $fill_i = array(); |
|
| 1205 | + |
|
| 1206 | + $output = ''; |
|
| 1207 | + |
|
| 1208 | + // build rules into each type |
|
| 1209 | + foreach($selectors as $selector => $types){ |
|
| 1210 | + $selector = $compatibility ? ".bsui ".$selector : $selector; |
|
| 1211 | + $types = array_combine($types,$types); |
|
| 1212 | + if(isset($types['c'])){$color[] = $selector;} |
|
| 1213 | + if(isset($types['b'])){$background[] = $selector;} |
|
| 1214 | + if(isset($types['o'])){$border[] = $selector;} |
|
| 1215 | + if(isset($types['f'])){$fill[] = $selector;} |
|
| 1216 | + } |
|
| 1217 | + |
|
| 1218 | + // build rules into each type |
|
| 1219 | + foreach($important_selectors as $selector => $types){ |
|
| 1220 | + $selector = $compatibility ? ".bsui ".$selector : $selector; |
|
| 1221 | + $types = array_combine($types,$types); |
|
| 1222 | + if(isset($types['c'])){$color_i[] = $selector;} |
|
| 1223 | + if(isset($types['b'])){$background_i[] = $selector;} |
|
| 1224 | + if(isset($types['o'])){$border_i[] = $selector;} |
|
| 1225 | + if(isset($types['f'])){$fill_i[] = $selector;} |
|
| 1226 | + } |
|
| 1227 | + |
|
| 1228 | + // add any color rules |
|
| 1229 | + if(!empty($color)){ |
|
| 1230 | + $output .= implode(",",$color) . "{color: $color_code;} "; |
|
| 1231 | + } |
|
| 1232 | + if(!empty($color_i)){ |
|
| 1233 | + $output .= implode(",",$color_i) . "{color: $color_code !important;} "; |
|
| 1234 | + } |
|
| 1235 | + |
|
| 1236 | + // add any background color rules |
|
| 1237 | + if(!empty($background)){ |
|
| 1238 | + $output .= implode(",",$background) . "{background-color: $color_code;} "; |
|
| 1239 | + } |
|
| 1240 | + if(!empty($background_i)){ |
|
| 1241 | + $output .= implode(",",$background_i) . "{background-color: $color_code !important;} "; |
|
| 1242 | + } |
|
| 1243 | + |
|
| 1244 | + // add any border color rules |
|
| 1245 | + if(!empty($border)){ |
|
| 1246 | + $output .= implode(",",$border) . "{border-color: $color_code;} "; |
|
| 1247 | + } |
|
| 1248 | + if(!empty($border_i)){ |
|
| 1249 | + $output .= implode(",",$border_i) . "{border-color: $color_code !important;} "; |
|
| 1250 | + } |
|
| 1251 | + |
|
| 1252 | + // add any fill color rules |
|
| 1253 | + if(!empty($fill)){ |
|
| 1254 | + $output .= implode(",",$fill) . "{fill: $color_code;} "; |
|
| 1255 | + } |
|
| 1256 | + if(!empty($fill_i)){ |
|
| 1257 | + $output .= implode(",",$fill_i) . "{fill: $color_code !important;} "; |
|
| 1258 | + } |
|
| 1259 | + |
|
| 1260 | + |
|
| 1261 | + $prefix = $compatibility ? ".bsui " : ""; |
|
| 1262 | + |
|
| 1263 | + // darken |
|
| 1264 | + $darker_075 = self::css_hex_lighten_darken($color_code,"-0.075"); |
|
| 1265 | + $darker_10 = self::css_hex_lighten_darken($color_code,"-0.10"); |
|
| 1266 | + $darker_125 = self::css_hex_lighten_darken($color_code,"-0.125"); |
|
| 1267 | + |
|
| 1268 | + // lighten |
|
| 1269 | + $lighten_25 = self::css_hex_lighten_darken($color_code,"0.25"); |
|
| 1270 | + |
|
| 1271 | + // opacity see https://css-tricks.com/8-digit-hex-codes/ |
|
| 1272 | + $op_25 = $color_code."40"; // 25% opacity |
|
| 1273 | + |
|
| 1274 | + |
|
| 1275 | + // button states |
|
| 1276 | + $output .= $prefix ." .btn-primary:hover{background-color: ".$darker_075."; border-color: ".$darker_10.";} "; |
|
| 1277 | + $output .= $prefix ." .btn-outline-primary:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-primary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-primary.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
| 1278 | + $output .= $prefix ." .btn-primary:not(:disabled):not(.disabled):active, $prefix .btn-primary:not(:disabled):not(.disabled).active, .show>$prefix .btn-primary.dropdown-toggle{background-color: ".$darker_10."; border-color: ".$darker_125.";} "; |
|
| 1279 | + $output .= $prefix ." .btn-primary:not(:disabled):not(.disabled):active:focus, $prefix .btn-primary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-primary.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
| 1280 | + |
|
| 1281 | + |
|
| 1282 | + // dropdown's |
|
| 1283 | + $output .= $prefix ." .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} "; |
|
| 1284 | + |
|
| 1285 | + |
|
| 1286 | + // input states |
|
| 1287 | + $output .= $prefix ." .form-control:focus{border-color: ".$lighten_25.";box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
| 1288 | + |
|
| 1289 | + // page link |
|
| 1290 | + $output .= $prefix ." .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
| 1291 | + |
|
| 1292 | + return $output; |
|
| 1293 | + } |
|
| 1294 | + |
|
| 1295 | + public static function css_secondary($color_code,$compatibility){; |
|
| 1296 | + $color_code = sanitize_hex_color($color_code); |
|
| 1297 | + if(!$color_code){return '';} |
|
| 1298 | + /** |
|
| 1299 | + * c = color, b = background color, o = border-color, f = fill |
|
| 1300 | + */ |
|
| 1301 | + $selectors = array( |
|
| 1302 | + '.btn-secondary' => array('b','o'), |
|
| 1303 | + '.btn-secondary.disabled' => array('b','o'), |
|
| 1304 | + '.btn-secondary:disabled' => array('b','o'), |
|
| 1305 | + '.btn-outline-secondary' => array('c','o'), |
|
| 1306 | + '.btn-outline-secondary:hover' => array('b','o'), |
|
| 1307 | + '.btn-outline-secondary.disabled' => array('c'), |
|
| 1308 | + '.btn-outline-secondary:disabled' => array('c'), |
|
| 1309 | + '.btn-outline-secondary:not(:disabled):not(.disabled):active' => array('b','o'), |
|
| 1310 | + '.btn-outline-secondary:not(:disabled):not(.disabled).active' => array('b','o'), |
|
| 1311 | + '.btn-outline-secondary.dropdown-toggle' => array('b','o'), |
|
| 1312 | + '.badge-secondary' => array('b'), |
|
| 1313 | + '.alert-secondary' => array('b','o'), |
|
| 1314 | + '.btn-link.btn-secondary' => array('c'), |
|
| 1315 | + ); |
|
| 1316 | + |
|
| 1317 | + $important_selectors = array( |
|
| 1318 | + '.bg-secondary' => array('b','f'), |
|
| 1319 | + '.border-secondary' => array('o'), |
|
| 1320 | + '.text-secondary' => array('c'), |
|
| 1321 | + ); |
|
| 1322 | + |
|
| 1323 | + $color = array(); |
|
| 1324 | + $color_i = array(); |
|
| 1325 | + $background = array(); |
|
| 1326 | + $background_i = array(); |
|
| 1327 | + $border = array(); |
|
| 1328 | + $border_i = array(); |
|
| 1329 | + $fill = array(); |
|
| 1330 | + $fill_i = array(); |
|
| 1331 | + |
|
| 1332 | + $output = ''; |
|
| 1333 | + |
|
| 1334 | + // build rules into each type |
|
| 1335 | + foreach($selectors as $selector => $types){ |
|
| 1336 | + $selector = $compatibility ? ".bsui ".$selector : $selector; |
|
| 1337 | + $types = array_combine($types,$types); |
|
| 1338 | + if(isset($types['c'])){$color[] = $selector;} |
|
| 1339 | + if(isset($types['b'])){$background[] = $selector;} |
|
| 1340 | + if(isset($types['o'])){$border[] = $selector;} |
|
| 1341 | + if(isset($types['f'])){$fill[] = $selector;} |
|
| 1342 | + } |
|
| 1343 | + |
|
| 1344 | + // build rules into each type |
|
| 1345 | + foreach($important_selectors as $selector => $types){ |
|
| 1346 | + $selector = $compatibility ? ".bsui ".$selector : $selector; |
|
| 1347 | + $types = array_combine($types,$types); |
|
| 1348 | + if(isset($types['c'])){$color_i[] = $selector;} |
|
| 1349 | + if(isset($types['b'])){$background_i[] = $selector;} |
|
| 1350 | + if(isset($types['o'])){$border_i[] = $selector;} |
|
| 1351 | + if(isset($types['f'])){$fill_i[] = $selector;} |
|
| 1352 | + } |
|
| 1353 | + |
|
| 1354 | + // add any color rules |
|
| 1355 | + if(!empty($color)){ |
|
| 1356 | + $output .= implode(",",$color) . "{color: $color_code;} "; |
|
| 1357 | + } |
|
| 1358 | + if(!empty($color_i)){ |
|
| 1359 | + $output .= implode(",",$color_i) . "{color: $color_code !important;} "; |
|
| 1360 | + } |
|
| 1361 | + |
|
| 1362 | + // add any background color rules |
|
| 1363 | + if(!empty($background)){ |
|
| 1364 | + $output .= implode(",",$background) . "{background-color: $color_code;} "; |
|
| 1365 | + } |
|
| 1366 | + if(!empty($background_i)){ |
|
| 1367 | + $output .= implode(",",$background_i) . "{background-color: $color_code !important;} "; |
|
| 1368 | + } |
|
| 1369 | + |
|
| 1370 | + // add any border color rules |
|
| 1371 | + if(!empty($border)){ |
|
| 1372 | + $output .= implode(",",$border) . "{border-color: $color_code;} "; |
|
| 1373 | + } |
|
| 1374 | + if(!empty($border_i)){ |
|
| 1375 | + $output .= implode(",",$border_i) . "{border-color: $color_code !important;} "; |
|
| 1376 | + } |
|
| 1377 | + |
|
| 1378 | + // add any fill color rules |
|
| 1379 | + if(!empty($fill)){ |
|
| 1380 | + $output .= implode(",",$fill) . "{fill: $color_code;} "; |
|
| 1381 | + } |
|
| 1382 | + if(!empty($fill_i)){ |
|
| 1383 | + $output .= implode(",",$fill_i) . "{fill: $color_code !important;} "; |
|
| 1384 | + } |
|
| 1385 | + |
|
| 1386 | + |
|
| 1387 | + $prefix = $compatibility ? ".bsui " : ""; |
|
| 1388 | + |
|
| 1389 | + // darken |
|
| 1390 | + $darker_075 = self::css_hex_lighten_darken($color_code,"-0.075"); |
|
| 1391 | + $darker_10 = self::css_hex_lighten_darken($color_code,"-0.10"); |
|
| 1392 | + $darker_125 = self::css_hex_lighten_darken($color_code,"-0.125"); |
|
| 1393 | + |
|
| 1394 | + // lighten |
|
| 1395 | + $lighten_25 = self::css_hex_lighten_darken($color_code,"0.25"); |
|
| 1396 | + |
|
| 1397 | + // opacity see https://css-tricks.com/8-digit-hex-codes/ |
|
| 1398 | + $op_25 = $color_code."40"; // 25% opacity |
|
| 1399 | + |
|
| 1400 | + |
|
| 1401 | + // button states |
|
| 1402 | + $output .= $prefix ." .btn-secondary:hover{background-color: ".$darker_075."; border-color: ".$darker_10.";} "; |
|
| 1403 | + $output .= $prefix ." .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-secondary.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
| 1404 | + $output .= $prefix ." .btn-secondary:not(:disabled):not(.disabled):active, $prefix .btn-secondary:not(:disabled):not(.disabled).active, .show>$prefix .btn-secondary.dropdown-toggle{background-color: ".$darker_10."; border-color: ".$darker_125.";} "; |
|
| 1405 | + $output .= $prefix ." .btn-secondary:not(:disabled):not(.disabled):active:focus, $prefix .btn-secondary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-secondary.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
| 1406 | + |
|
| 1407 | + |
|
| 1408 | + return $output; |
|
| 1409 | + } |
|
| 1410 | + |
|
| 1411 | + /** |
|
| 1412 | + * Increases or decreases the brightness of a color by a percentage of the current brightness. |
|
| 1413 | + * |
|
| 1414 | + * @param string $hexCode Supported formats: `#FFF`, `#FFFFFF`, `FFF`, `FFFFFF` |
|
| 1415 | + * @param float $adjustPercent A number between -1 and 1. E.g. 0.3 = 30% lighter; -0.4 = 40% darker. |
|
| 1416 | + * |
|
| 1417 | + * @return string |
|
| 1418 | + */ |
|
| 1419 | + public static function css_hex_lighten_darken($hexCode, $adjustPercent) { |
|
| 1420 | + $hexCode = ltrim($hexCode, '#'); |
|
| 1421 | + |
|
| 1422 | + if (strlen($hexCode) == 3) { |
|
| 1423 | + $hexCode = $hexCode[0] . $hexCode[0] . $hexCode[1] . $hexCode[1] . $hexCode[2] . $hexCode[2]; |
|
| 1424 | + } |
|
| 1425 | + |
|
| 1426 | + $hexCode = array_map('hexdec', str_split($hexCode, 2)); |
|
| 1427 | + |
|
| 1428 | + foreach ($hexCode as & $color) { |
|
| 1429 | + $adjustableLimit = $adjustPercent < 0 ? $color : 255 - $color; |
|
| 1430 | + $adjustAmount = ceil($adjustableLimit * $adjustPercent); |
|
| 1431 | + |
|
| 1432 | + $color = str_pad(dechex($color + $adjustAmount), 2, '0', STR_PAD_LEFT); |
|
| 1433 | + } |
|
| 1434 | + |
|
| 1435 | + return '#' . implode($hexCode); |
|
| 1436 | + } |
|
| 1437 | + |
|
| 1438 | + /** |
|
| 1439 | + * Check if we should display examples. |
|
| 1440 | + */ |
|
| 1441 | + public function maybe_show_examples(){ |
|
| 1442 | + if(current_user_can('manage_options') && isset($_REQUEST['preview-aui'])){ |
|
| 1443 | + echo "<head>"; |
|
| 1444 | + wp_head(); |
|
| 1445 | + echo "</head>"; |
|
| 1446 | + echo "<body>"; |
|
| 1447 | + echo $this->get_examples(); |
|
| 1448 | + echo "</body>"; |
|
| 1449 | + exit; |
|
| 1450 | + } |
|
| 1451 | + } |
|
| 1452 | + |
|
| 1453 | + /** |
|
| 1454 | + * Get developer examples. |
|
| 1455 | + * |
|
| 1456 | + * @return string |
|
| 1457 | + */ |
|
| 1458 | + public function get_examples(){ |
|
| 1459 | + $output = ''; |
|
| 1460 | + |
|
| 1461 | + |
|
| 1462 | + // open form |
|
| 1463 | + $output .= "<form class='p-5 m-5 border rounded'>"; |
|
| 1464 | + |
|
| 1465 | + // input example |
|
| 1466 | + $output .= aui()->input(array( |
|
| 1467 | + 'type' => 'text', |
|
| 1468 | + 'id' => 'text-example', |
|
| 1469 | + 'name' => 'text-example', |
|
| 1470 | + 'placeholder' => 'text placeholder', |
|
| 1471 | + 'title' => 'Text input example', |
|
| 1472 | + 'value' => '', |
|
| 1473 | + 'required' => false, |
|
| 1474 | + 'help_text' => 'help text', |
|
| 1475 | + 'label' => 'Text input example label' |
|
| 1476 | + )); |
|
| 1477 | + |
|
| 1478 | + // input example |
|
| 1479 | + $output .= aui()->input(array( |
|
| 1480 | + 'type' => 'url', |
|
| 1481 | + 'id' => 'text-example2', |
|
| 1482 | + 'name' => 'text-example', |
|
| 1483 | + 'placeholder' => 'url placeholder', |
|
| 1484 | + 'title' => 'Text input example', |
|
| 1485 | + 'value' => '', |
|
| 1486 | + 'required' => false, |
|
| 1487 | + 'help_text' => 'help text', |
|
| 1488 | + 'label' => 'Text input example label' |
|
| 1489 | + )); |
|
| 1490 | + |
|
| 1491 | + // checkbox example |
|
| 1492 | + $output .= aui()->input(array( |
|
| 1493 | + 'type' => 'checkbox', |
|
| 1494 | + 'id' => 'checkbox-example', |
|
| 1495 | + 'name' => 'checkbox-example', |
|
| 1496 | + 'placeholder' => 'checkbox-example', |
|
| 1497 | + 'title' => 'Checkbox example', |
|
| 1498 | + 'value' => '1', |
|
| 1499 | + 'checked' => true, |
|
| 1500 | + 'required' => false, |
|
| 1501 | + 'help_text' => 'help text', |
|
| 1502 | + 'label' => 'Checkbox checked' |
|
| 1503 | + )); |
|
| 1504 | + |
|
| 1505 | + // checkbox example |
|
| 1506 | + $output .= aui()->input(array( |
|
| 1507 | + 'type' => 'checkbox', |
|
| 1508 | + 'id' => 'checkbox-example2', |
|
| 1509 | + 'name' => 'checkbox-example2', |
|
| 1510 | + 'placeholder' => 'checkbox-example', |
|
| 1511 | + 'title' => 'Checkbox example', |
|
| 1512 | + 'value' => '1', |
|
| 1513 | + 'checked' => false, |
|
| 1514 | + 'required' => false, |
|
| 1515 | + 'help_text' => 'help text', |
|
| 1516 | + 'label' => 'Checkbox un-checked' |
|
| 1517 | + )); |
|
| 1518 | + |
|
| 1519 | + // switch example |
|
| 1520 | + $output .= aui()->input(array( |
|
| 1521 | + 'type' => 'checkbox', |
|
| 1522 | + 'id' => 'switch-example', |
|
| 1523 | + 'name' => 'switch-example', |
|
| 1524 | + 'placeholder' => 'checkbox-example', |
|
| 1525 | + 'title' => 'Switch example', |
|
| 1526 | + 'value' => '1', |
|
| 1527 | + 'checked' => true, |
|
| 1528 | + 'switch' => true, |
|
| 1529 | + 'required' => false, |
|
| 1530 | + 'help_text' => 'help text', |
|
| 1531 | + 'label' => 'Switch on' |
|
| 1532 | + )); |
|
| 1533 | + |
|
| 1534 | + // switch example |
|
| 1535 | + $output .= aui()->input(array( |
|
| 1536 | + 'type' => 'checkbox', |
|
| 1537 | + 'id' => 'switch-example2', |
|
| 1538 | + 'name' => 'switch-example2', |
|
| 1539 | + 'placeholder' => 'checkbox-example', |
|
| 1540 | + 'title' => 'Switch example', |
|
| 1541 | + 'value' => '1', |
|
| 1542 | + 'checked' => false, |
|
| 1543 | + 'switch' => true, |
|
| 1544 | + 'required' => false, |
|
| 1545 | + 'help_text' => 'help text', |
|
| 1546 | + 'label' => 'Switch off' |
|
| 1547 | + )); |
|
| 1548 | + |
|
| 1549 | + // close form |
|
| 1550 | + $output .= "</form>"; |
|
| 1551 | + |
|
| 1552 | + return $output; |
|
| 1553 | + } |
|
| 1554 | + |
|
| 1555 | + } |
|
| 1556 | + |
|
| 1557 | + /** |
|
| 1558 | + * Run the class if found. |
|
| 1559 | + */ |
|
| 1560 | + AyeCode_UI_Settings::instance(); |
|
| 1561 | 1561 | } |
| 1562 | 1562 | \ No newline at end of file |
@@ -36,36 +36,36 @@ discard block |
||
| 36 | 36 | 'desc_tip' => true, |
| 37 | 37 | 'default' => '', |
| 38 | 38 | 'advanced' => false |
| 39 | - ), |
|
| 39 | + ), |
|
| 40 | 40 | |
| 41 | 41 | 'form' => array( |
| 42 | - 'title' => __( 'Form', 'invoicing' ), |
|
| 43 | - 'desc' => __( 'Enter a form id in case you want to display a specific payment form', 'invoicing' ), |
|
| 44 | - 'type' => 'text', |
|
| 45 | - 'desc_tip' => true, |
|
| 46 | - 'default' => '', |
|
| 47 | - 'placeholder' => __('1','invoicing'), |
|
| 48 | - 'advanced' => false |
|
| 49 | - ), |
|
| 50 | - |
|
| 51 | - 'item' => array( |
|
| 52 | - 'title' => __( 'Items', 'invoicing' ), |
|
| 53 | - 'desc' => __( 'Enter comma separated list of invoicing item id and quantity (item_id|quantity). Ex. 101|2. This will be ignored in case you specify a form above. Enter 0 as the quantity to let users select their own quantities', 'invoicing' ), |
|
| 54 | - 'type' => 'text', |
|
| 55 | - 'desc_tip' => true, |
|
| 56 | - 'default' => '', |
|
| 57 | - 'placeholder' => __('1','invoicing'), |
|
| 58 | - 'advanced' => false |
|
| 59 | - ), |
|
| 42 | + 'title' => __( 'Form', 'invoicing' ), |
|
| 43 | + 'desc' => __( 'Enter a form id in case you want to display a specific payment form', 'invoicing' ), |
|
| 44 | + 'type' => 'text', |
|
| 45 | + 'desc_tip' => true, |
|
| 46 | + 'default' => '', |
|
| 47 | + 'placeholder' => __('1','invoicing'), |
|
| 48 | + 'advanced' => false |
|
| 49 | + ), |
|
| 50 | + |
|
| 51 | + 'item' => array( |
|
| 52 | + 'title' => __( 'Items', 'invoicing' ), |
|
| 53 | + 'desc' => __( 'Enter comma separated list of invoicing item id and quantity (item_id|quantity). Ex. 101|2. This will be ignored in case you specify a form above. Enter 0 as the quantity to let users select their own quantities', 'invoicing' ), |
|
| 54 | + 'type' => 'text', |
|
| 55 | + 'desc_tip' => true, |
|
| 56 | + 'default' => '', |
|
| 57 | + 'placeholder' => __('1','invoicing'), |
|
| 58 | + 'advanced' => false |
|
| 59 | + ), |
|
| 60 | 60 | |
| 61 | 61 | 'button' => array( |
| 62 | - 'title' => __( 'Button', 'invoicing' ), |
|
| 63 | - 'desc' => __( 'Enter button label in case you would like to display the forms in a popup.', 'invoicing' ), |
|
| 64 | - 'type' => 'text', |
|
| 65 | - 'desc_tip' => true, |
|
| 66 | - 'default' => '', |
|
| 67 | - 'advanced' => false |
|
| 68 | - ) |
|
| 62 | + 'title' => __( 'Button', 'invoicing' ), |
|
| 63 | + 'desc' => __( 'Enter button label in case you would like to display the forms in a popup.', 'invoicing' ), |
|
| 64 | + 'type' => 'text', |
|
| 65 | + 'desc_tip' => true, |
|
| 66 | + 'default' => '', |
|
| 67 | + 'advanced' => false |
|
| 68 | + ) |
|
| 69 | 69 | |
| 70 | 70 | ) |
| 71 | 71 | |
@@ -75,96 +75,96 @@ discard block |
||
| 75 | 75 | parent::__construct( $options ); |
| 76 | 76 | } |
| 77 | 77 | |
| 78 | - /** |
|
| 79 | - * The Super block output function. |
|
| 80 | - * |
|
| 81 | - * @param array $args |
|
| 82 | - * @param array $widget_args |
|
| 83 | - * @param string $content |
|
| 84 | - * |
|
| 85 | - * @return string |
|
| 86 | - */ |
|
| 78 | + /** |
|
| 79 | + * The Super block output function. |
|
| 80 | + * |
|
| 81 | + * @param array $args |
|
| 82 | + * @param array $widget_args |
|
| 83 | + * @param string $content |
|
| 84 | + * |
|
| 85 | + * @return string |
|
| 86 | + */ |
|
| 87 | 87 | public function output( $args = array(), $widget_args = array(), $content = '' ) { |
| 88 | 88 | |
| 89 | - // Is the shortcode set up correctly? |
|
| 90 | - if ( empty( $args['form'] ) && empty( $args['item'] ) ) { |
|
| 91 | - return aui()->alert( |
|
| 92 | - array( |
|
| 93 | - 'type' => 'warning', |
|
| 94 | - 'content' => __( 'No payment form or item selected', 'invoicing' ), |
|
| 95 | - ) |
|
| 96 | - ); |
|
| 97 | - } |
|
| 98 | - |
|
| 99 | - // Payment form or button? |
|
| 100 | - if ( ! empty( $args['form'] ) ) { |
|
| 101 | - return $this->handle_payment_form( $args ); |
|
| 102 | - } else { |
|
| 103 | - return $this->handle_buy_item( $args ); |
|
| 104 | - } |
|
| 105 | - |
|
| 106 | - } |
|
| 107 | - |
|
| 108 | - /** |
|
| 109 | - * Displaying a payment form |
|
| 110 | - * |
|
| 111 | - * @return string |
|
| 112 | - */ |
|
| 89 | + // Is the shortcode set up correctly? |
|
| 90 | + if ( empty( $args['form'] ) && empty( $args['item'] ) ) { |
|
| 91 | + return aui()->alert( |
|
| 92 | + array( |
|
| 93 | + 'type' => 'warning', |
|
| 94 | + 'content' => __( 'No payment form or item selected', 'invoicing' ), |
|
| 95 | + ) |
|
| 96 | + ); |
|
| 97 | + } |
|
| 98 | + |
|
| 99 | + // Payment form or button? |
|
| 100 | + if ( ! empty( $args['form'] ) ) { |
|
| 101 | + return $this->handle_payment_form( $args ); |
|
| 102 | + } else { |
|
| 103 | + return $this->handle_buy_item( $args ); |
|
| 104 | + } |
|
| 105 | + |
|
| 106 | + } |
|
| 107 | + |
|
| 108 | + /** |
|
| 109 | + * Displaying a payment form |
|
| 110 | + * |
|
| 111 | + * @return string |
|
| 112 | + */ |
|
| 113 | 113 | protected function handle_payment_form( $args = array() ) { |
| 114 | 114 | |
| 115 | - if ( empty( $args['button'] ) ) { |
|
| 116 | - ob_start(); |
|
| 117 | - getpaid_display_payment_form( $args['form'] ); |
|
| 118 | - return ob_get_clean(); |
|
| 119 | - } |
|
| 115 | + if ( empty( $args['button'] ) ) { |
|
| 116 | + ob_start(); |
|
| 117 | + getpaid_display_payment_form( $args['form'] ); |
|
| 118 | + return ob_get_clean(); |
|
| 119 | + } |
|
| 120 | 120 | |
| 121 | - return $this->payment_form_button( $args['form'], $args['button'] ); |
|
| 122 | - } |
|
| 121 | + return $this->payment_form_button( $args['form'], $args['button'] ); |
|
| 122 | + } |
|
| 123 | 123 | |
| 124 | - /** |
|
| 125 | - * Displays a payment form button. |
|
| 126 | - * |
|
| 127 | - * @return string |
|
| 128 | - */ |
|
| 124 | + /** |
|
| 125 | + * Displays a payment form button. |
|
| 126 | + * |
|
| 127 | + * @return string |
|
| 128 | + */ |
|
| 129 | 129 | protected function payment_form_button( $form, $button ) { |
| 130 | - return getpaid_get_payment_button( $button, $form ); |
|
| 131 | - } |
|
| 132 | - |
|
| 133 | - /** |
|
| 134 | - * Selling an item |
|
| 135 | - * |
|
| 136 | - * @return string |
|
| 137 | - */ |
|
| 130 | + return getpaid_get_payment_button( $button, $form ); |
|
| 131 | + } |
|
| 132 | + |
|
| 133 | + /** |
|
| 134 | + * Selling an item |
|
| 135 | + * |
|
| 136 | + * @return string |
|
| 137 | + */ |
|
| 138 | 138 | protected function handle_buy_item( $args = array() ) { |
| 139 | 139 | |
| 140 | - if ( empty( $args['button'] ) ) { |
|
| 141 | - return $this->buy_item_form( $args['item'] ); |
|
| 142 | - } |
|
| 140 | + if ( empty( $args['button'] ) ) { |
|
| 141 | + return $this->buy_item_form( $args['item'] ); |
|
| 142 | + } |
|
| 143 | 143 | |
| 144 | - return $this->buy_item_button( $args['item'], $args['button'] ); |
|
| 144 | + return $this->buy_item_button( $args['item'], $args['button'] ); |
|
| 145 | 145 | |
| 146 | - } |
|
| 146 | + } |
|
| 147 | 147 | |
| 148 | - /** |
|
| 149 | - * Displays a buy item form. |
|
| 150 | - * |
|
| 151 | - * @return string |
|
| 152 | - */ |
|
| 148 | + /** |
|
| 149 | + * Displays a buy item form. |
|
| 150 | + * |
|
| 151 | + * @return string |
|
| 152 | + */ |
|
| 153 | 153 | protected function buy_item_form( $item ) { |
| 154 | - $items = getpaid_convert_items_to_array( $item ); |
|
| 155 | - ob_start(); |
|
| 156 | - getpaid_display_item_payment_form( $items ); |
|
| 157 | - return ob_get_clean(); |
|
| 158 | - } |
|
| 159 | - |
|
| 160 | - /** |
|
| 161 | - * Displays a buy item button. |
|
| 162 | - * |
|
| 163 | - * @return string |
|
| 164 | - */ |
|
| 154 | + $items = getpaid_convert_items_to_array( $item ); |
|
| 155 | + ob_start(); |
|
| 156 | + getpaid_display_item_payment_form( $items ); |
|
| 157 | + return ob_get_clean(); |
|
| 158 | + } |
|
| 159 | + |
|
| 160 | + /** |
|
| 161 | + * Displays a buy item button. |
|
| 162 | + * |
|
| 163 | + * @return string |
|
| 164 | + */ |
|
| 165 | 165 | protected function buy_item_button( $item, $button ) { |
| 166 | - $button = getpaid_get_payment_button( $button, null, $item ); |
|
| 167 | - return apply_filters( 'getpaid_buy_item_button_widget', $button, $item ); |
|
| 166 | + $button = getpaid_get_payment_button( $button, null, $item ); |
|
| 167 | + return apply_filters( 'getpaid_buy_item_button_widget', $button, $item ); |
|
| 168 | 168 | } |
| 169 | 169 | |
| 170 | 170 | } |
@@ -13,58 +13,58 @@ discard block |
||
| 13 | 13 | class GetPaid_Authorize_Net_Gateway extends GetPaid_Authorize_Net_Legacy_Gateway { |
| 14 | 14 | |
| 15 | 15 | /** |
| 16 | - * Payment method id. |
|
| 17 | - * |
|
| 18 | - * @var string |
|
| 19 | - */ |
|
| 16 | + * Payment method id. |
|
| 17 | + * |
|
| 18 | + * @var string |
|
| 19 | + */ |
|
| 20 | 20 | public $id = 'authorizenet'; |
| 21 | 21 | |
| 22 | 22 | /** |
| 23 | - * An array of features that this gateway supports. |
|
| 24 | - * |
|
| 25 | - * @var array |
|
| 26 | - */ |
|
| 23 | + * An array of features that this gateway supports. |
|
| 24 | + * |
|
| 25 | + * @var array |
|
| 26 | + */ |
|
| 27 | 27 | protected $supports = array( 'subscription', 'sandbox', 'tokens', 'addons' ); |
| 28 | 28 | |
| 29 | 29 | /** |
| 30 | - * Payment method order. |
|
| 31 | - * |
|
| 32 | - * @var int |
|
| 33 | - */ |
|
| 30 | + * Payment method order. |
|
| 31 | + * |
|
| 32 | + * @var int |
|
| 33 | + */ |
|
| 34 | 34 | public $order = 4; |
| 35 | 35 | |
| 36 | 36 | /** |
| 37 | - * Endpoint for requests from Authorize.net. |
|
| 38 | - * |
|
| 39 | - * @var string |
|
| 40 | - */ |
|
| 41 | - protected $notify_url; |
|
| 42 | - |
|
| 43 | - /** |
|
| 44 | - * Endpoint for requests to Authorize.net. |
|
| 45 | - * |
|
| 46 | - * @var string |
|
| 47 | - */ |
|
| 37 | + * Endpoint for requests from Authorize.net. |
|
| 38 | + * |
|
| 39 | + * @var string |
|
| 40 | + */ |
|
| 41 | + protected $notify_url; |
|
| 42 | + |
|
| 43 | + /** |
|
| 44 | + * Endpoint for requests to Authorize.net. |
|
| 45 | + * |
|
| 46 | + * @var string |
|
| 47 | + */ |
|
| 48 | 48 | protected $endpoint; |
| 49 | 49 | |
| 50 | 50 | /** |
| 51 | - * Currencies this gateway is allowed for. |
|
| 52 | - * |
|
| 53 | - * @var array |
|
| 54 | - */ |
|
| 55 | - public $currencies = array( 'USD', 'CAD', 'GBP', 'DKK', 'NOK', 'PLN', 'SEK', 'AUD', 'EUR', 'NZD' ); |
|
| 51 | + * Currencies this gateway is allowed for. |
|
| 52 | + * |
|
| 53 | + * @var array |
|
| 54 | + */ |
|
| 55 | + public $currencies = array( 'USD', 'CAD', 'GBP', 'DKK', 'NOK', 'PLN', 'SEK', 'AUD', 'EUR', 'NZD' ); |
|
| 56 | 56 | |
| 57 | 57 | /** |
| 58 | - * URL to view a transaction. |
|
| 59 | - * |
|
| 60 | - * @var string |
|
| 61 | - */ |
|
| 58 | + * URL to view a transaction. |
|
| 59 | + * |
|
| 60 | + * @var string |
|
| 61 | + */ |
|
| 62 | 62 | public $view_transaction_url = 'https://{sandbox}authorize.net/ui/themes/sandbox/Transaction/TransactionReceipt.aspx?transid=%s'; |
| 63 | 63 | |
| 64 | 64 | /** |
| 65 | - * Class constructor. |
|
| 66 | - */ |
|
| 67 | - public function __construct() { |
|
| 65 | + * Class constructor. |
|
| 66 | + */ |
|
| 67 | + public function __construct() { |
|
| 68 | 68 | |
| 69 | 69 | $this->title = __( 'Credit Card / Debit Card', 'invoicing' ); |
| 70 | 70 | $this->method_title = __( 'Authorize.Net', 'invoicing' ); |
@@ -76,11 +76,11 @@ discard block |
||
| 76 | 76 | } |
| 77 | 77 | |
| 78 | 78 | /** |
| 79 | - * Displays the payment method select field. |
|
| 80 | - * |
|
| 81 | - * @param int $invoice_id 0 or invoice id. |
|
| 82 | - * @param GetPaid_Payment_Form $form Current payment form. |
|
| 83 | - */ |
|
| 79 | + * Displays the payment method select field. |
|
| 80 | + * |
|
| 81 | + * @param int $invoice_id 0 or invoice id. |
|
| 82 | + * @param GetPaid_Payment_Form $form Current payment form. |
|
| 83 | + */ |
|
| 84 | 84 | public function payment_fields( $invoice_id, $form ) { |
| 85 | 85 | |
| 86 | 86 | // Let the user select a payment method. |
@@ -91,16 +91,16 @@ discard block |
||
| 91 | 91 | } |
| 92 | 92 | |
| 93 | 93 | /** |
| 94 | - * Creates a customer profile. |
|
| 95 | - * |
|
| 96 | - * |
|
| 97 | - * @param WPInv_Invoice $invoice Invoice. |
|
| 94 | + * Creates a customer profile. |
|
| 95 | + * |
|
| 96 | + * |
|
| 97 | + * @param WPInv_Invoice $invoice Invoice. |
|
| 98 | 98 | * @param array $submission_data Posted checkout fields. |
| 99 | 99 | * @param bool $save Whether or not to save the payment as a token. |
| 100 | 100 | * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-create-customer-profile |
| 101 | - * @return string|WP_Error Payment profile id. |
|
| 102 | - */ |
|
| 103 | - public function create_customer_profile( $invoice, $submission_data, $save = true ) { |
|
| 101 | + * @return string|WP_Error Payment profile id. |
|
| 102 | + */ |
|
| 103 | + public function create_customer_profile( $invoice, $submission_data, $save = true ) { |
|
| 104 | 104 | |
| 105 | 105 | // Remove non-digits from the number |
| 106 | 106 | $submission_data['authorizenet']['cc_number'] = preg_replace('/\D/', '', $submission_data['authorizenet']['cc_number'] ); |
@@ -167,14 +167,14 @@ discard block |
||
| 167 | 167 | } |
| 168 | 168 | |
| 169 | 169 | /** |
| 170 | - * Retrieves a customer profile. |
|
| 171 | - * |
|
| 172 | - * |
|
| 173 | - * @param string $profile_id profile id. |
|
| 174 | - * @return string|WP_Error Profile id. |
|
| 170 | + * Retrieves a customer profile. |
|
| 171 | + * |
|
| 172 | + * |
|
| 173 | + * @param string $profile_id profile id. |
|
| 174 | + * @return string|WP_Error Profile id. |
|
| 175 | 175 | * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-get-customer-profile |
| 176 | - */ |
|
| 177 | - public function get_customer_profile( $profile_id ) { |
|
| 176 | + */ |
|
| 177 | + public function get_customer_profile( $profile_id ) { |
|
| 178 | 178 | |
| 179 | 179 | // Generate args. |
| 180 | 180 | $args = array( |
@@ -189,17 +189,17 @@ discard block |
||
| 189 | 189 | } |
| 190 | 190 | |
| 191 | 191 | /** |
| 192 | - * Creates a customer profile. |
|
| 193 | - * |
|
| 194 | - * |
|
| 192 | + * Creates a customer profile. |
|
| 193 | + * |
|
| 194 | + * |
|
| 195 | 195 | * @param string $profile_id profile id. |
| 196 | - * @param WPInv_Invoice $invoice Invoice. |
|
| 196 | + * @param WPInv_Invoice $invoice Invoice. |
|
| 197 | 197 | * @param array $submission_data Posted checkout fields. |
| 198 | 198 | * @param bool $save Whether or not to save the payment as a token. |
| 199 | 199 | * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-create-customer-profile |
| 200 | - * @return string|WP_Error Profile id. |
|
| 201 | - */ |
|
| 202 | - public function create_customer_payment_profile( $customer_profile, $invoice, $submission_data, $save ) { |
|
| 200 | + * @return string|WP_Error Profile id. |
|
| 201 | + */ |
|
| 202 | + public function create_customer_payment_profile( $customer_profile, $invoice, $submission_data, $save ) { |
|
| 203 | 203 | |
| 204 | 204 | // Remove non-digits from the number |
| 205 | 205 | $submission_data['authorizenet']['cc_number'] = preg_replace('/\D/', '', $submission_data['authorizenet']['cc_number'] ); |
@@ -259,15 +259,15 @@ discard block |
||
| 259 | 259 | } |
| 260 | 260 | |
| 261 | 261 | /** |
| 262 | - * Retrieves a customer payment profile. |
|
| 263 | - * |
|
| 264 | - * |
|
| 265 | - * @param string $customer_profile_id customer profile id. |
|
| 262 | + * Retrieves a customer payment profile. |
|
| 263 | + * |
|
| 264 | + * |
|
| 265 | + * @param string $customer_profile_id customer profile id. |
|
| 266 | 266 | * @param string $payment_profile_id payment profile id. |
| 267 | - * @return string|WP_Error Profile id. |
|
| 267 | + * @return string|WP_Error Profile id. |
|
| 268 | 268 | * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-get-customer-payment-profile |
| 269 | - */ |
|
| 270 | - public function get_customer_payment_profile( $customer_profile_id, $payment_profile_id ) { |
|
| 269 | + */ |
|
| 270 | + public function get_customer_payment_profile( $customer_profile_id, $payment_profile_id ) { |
|
| 271 | 271 | |
| 272 | 272 | // Generate args. |
| 273 | 273 | $args = array( |
@@ -283,15 +283,15 @@ discard block |
||
| 283 | 283 | } |
| 284 | 284 | |
| 285 | 285 | /** |
| 286 | - * Charges a customer payment profile. |
|
| 287 | - * |
|
| 286 | + * Charges a customer payment profile. |
|
| 287 | + * |
|
| 288 | 288 | * @param string $customer_profile_id customer profile id. |
| 289 | 289 | * @param string $payment_profile_id payment profile id. |
| 290 | - * @param WPInv_Invoice $invoice Invoice. |
|
| 290 | + * @param WPInv_Invoice $invoice Invoice. |
|
| 291 | 291 | * @link https://developer.authorize.net/api/reference/index.html#payment-transactions-charge-a-customer-profile |
| 292 | - * @return WP_Error|object |
|
| 293 | - */ |
|
| 294 | - public function charge_customer_payment_profile( $customer_profile_id, $payment_profile_id, $invoice ) { |
|
| 292 | + * @return WP_Error|object |
|
| 293 | + */ |
|
| 294 | + public function charge_customer_payment_profile( $customer_profile_id, $payment_profile_id, $invoice ) { |
|
| 295 | 295 | |
| 296 | 296 | // Generate args. |
| 297 | 297 | $args = array( |
@@ -337,41 +337,41 @@ discard block |
||
| 337 | 337 | } |
| 338 | 338 | |
| 339 | 339 | /** |
| 340 | - * Processes a customer charge. |
|
| 341 | - * |
|
| 340 | + * Processes a customer charge. |
|
| 341 | + * |
|
| 342 | 342 | * @param stdClass $result Api response. |
| 343 | - * @param WPInv_Invoice $invoice Invoice. |
|
| 344 | - */ |
|
| 345 | - public function process_charge_response( $result, $invoice ) { |
|
| 343 | + * @param WPInv_Invoice $invoice Invoice. |
|
| 344 | + */ |
|
| 345 | + public function process_charge_response( $result, $invoice ) { |
|
| 346 | 346 | |
| 347 | 347 | wpinv_clear_errors(); |
| 348 | - $response_code = (int) $result->transactionResponse->responseCode; |
|
| 348 | + $response_code = (int) $result->transactionResponse->responseCode; |
|
| 349 | 349 | |
| 350 | - // Succeeded. |
|
| 351 | - if ( 1 == $response_code || 4 == $response_code ) { |
|
| 350 | + // Succeeded. |
|
| 351 | + if ( 1 == $response_code || 4 == $response_code ) { |
|
| 352 | 352 | |
| 353 | - // Maybe set a transaction id. |
|
| 354 | - if ( ! empty( $result->transactionResponse->transId ) ) { |
|
| 355 | - $invoice->set_transaction_id( $result->transactionResponse->transId ); |
|
| 356 | - } |
|
| 353 | + // Maybe set a transaction id. |
|
| 354 | + if ( ! empty( $result->transactionResponse->transId ) ) { |
|
| 355 | + $invoice->set_transaction_id( $result->transactionResponse->transId ); |
|
| 356 | + } |
|
| 357 | 357 | |
| 358 | - $invoice->add_note( sprintf( __( 'Authentication code: %s (%s).', 'invoicing' ), $result->transactionResponse->authCode, $result->transactionResponse->accountNumber ), false, false, true ); |
|
| 358 | + $invoice->add_note( sprintf( __( 'Authentication code: %s (%s).', 'invoicing' ), $result->transactionResponse->authCode, $result->transactionResponse->accountNumber ), false, false, true ); |
|
| 359 | 359 | |
| 360 | - if ( 1 == $response_code ) { |
|
| 361 | - return $invoice->mark_paid(); |
|
| 362 | - } |
|
| 360 | + if ( 1 == $response_code ) { |
|
| 361 | + return $invoice->mark_paid(); |
|
| 362 | + } |
|
| 363 | 363 | |
| 364 | - $invoice->set_status( 'wpi-onhold' ); |
|
| 365 | - $invoice->add_note( |
|
| 364 | + $invoice->set_status( 'wpi-onhold' ); |
|
| 365 | + $invoice->add_note( |
|
| 366 | 366 | sprintf( |
| 367 | 367 | __( 'Held for review: %s', 'invoicing' ), |
| 368 | 368 | $result->transactionResponse->messages->message[0]->description |
| 369 | 369 | ) |
| 370 | - ); |
|
| 370 | + ); |
|
| 371 | 371 | |
| 372 | - return $invoice->save(); |
|
| 372 | + return $invoice->save(); |
|
| 373 | 373 | |
| 374 | - } |
|
| 374 | + } |
|
| 375 | 375 | |
| 376 | 376 | wpinv_set_error( 'card_declined', __( 'Credit card declined.', 'invoicing' ) ); |
| 377 | 377 | |
@@ -383,13 +383,13 @@ discard block |
||
| 383 | 383 | } |
| 384 | 384 | |
| 385 | 385 | /** |
| 386 | - * Returns payment information. |
|
| 387 | - * |
|
| 388 | - * |
|
| 389 | - * @param array $card Card details. |
|
| 390 | - * @return array |
|
| 391 | - */ |
|
| 392 | - public function get_payment_information( $card ) { |
|
| 386 | + * Returns payment information. |
|
| 387 | + * |
|
| 388 | + * |
|
| 389 | + * @param array $card Card details. |
|
| 390 | + * @return array |
|
| 391 | + */ |
|
| 392 | + public function get_payment_information( $card ) { |
|
| 393 | 393 | return array( |
| 394 | 394 | |
| 395 | 395 | 'creditCard' => array ( |
@@ -402,25 +402,25 @@ discard block |
||
| 402 | 402 | } |
| 403 | 403 | |
| 404 | 404 | /** |
| 405 | - * Returns the customer profile meta name. |
|
| 406 | - * |
|
| 407 | - * |
|
| 408 | - * @param WPInv_Invoice $invoice Invoice. |
|
| 409 | - * @return string |
|
| 410 | - */ |
|
| 411 | - public function get_customer_profile_meta_name( $invoice ) { |
|
| 405 | + * Returns the customer profile meta name. |
|
| 406 | + * |
|
| 407 | + * |
|
| 408 | + * @param WPInv_Invoice $invoice Invoice. |
|
| 409 | + * @return string |
|
| 410 | + */ |
|
| 411 | + public function get_customer_profile_meta_name( $invoice ) { |
|
| 412 | 412 | return $this->is_sandbox( $invoice ) ? 'getpaid_authorizenet_sandbox_customer_profile_id' : 'getpaid_authorizenet_customer_profile_id'; |
| 413 | 413 | } |
| 414 | 414 | |
| 415 | 415 | /** |
| 416 | - * Validates the submitted data. |
|
| 417 | - * |
|
| 418 | - * |
|
| 419 | - * @param array $submission_data Posted checkout fields. |
|
| 416 | + * Validates the submitted data. |
|
| 417 | + * |
|
| 418 | + * |
|
| 419 | + * @param array $submission_data Posted checkout fields. |
|
| 420 | 420 | * @param WPInv_Invoice $invoice |
| 421 | - * @return WP_Error|string The payment profile id |
|
| 422 | - */ |
|
| 423 | - public function validate_submission_data( $submission_data, $invoice ) { |
|
| 421 | + * @return WP_Error|string The payment profile id |
|
| 422 | + */ |
|
| 423 | + public function validate_submission_data( $submission_data, $invoice ) { |
|
| 424 | 424 | |
| 425 | 425 | // Validate authentication details. |
| 426 | 426 | $auth = $this->get_auth_params(); |
@@ -452,13 +452,13 @@ discard block |
||
| 452 | 452 | } |
| 453 | 453 | |
| 454 | 454 | /** |
| 455 | - * Returns invoice line items. |
|
| 456 | - * |
|
| 457 | - * |
|
| 458 | - * @param WPInv_Invoice $invoice Invoice. |
|
| 459 | - * @return array |
|
| 460 | - */ |
|
| 461 | - public function get_line_items( $invoice ) { |
|
| 455 | + * Returns invoice line items. |
|
| 456 | + * |
|
| 457 | + * |
|
| 458 | + * @param WPInv_Invoice $invoice Invoice. |
|
| 459 | + * @return array |
|
| 460 | + */ |
|
| 461 | + public function get_line_items( $invoice ) { |
|
| 462 | 462 | $items = array(); |
| 463 | 463 | |
| 464 | 464 | foreach ( $invoice->get_items() as $item ) { |
@@ -496,15 +496,15 @@ discard block |
||
| 496 | 496 | } |
| 497 | 497 | |
| 498 | 498 | /** |
| 499 | - * Process Payment. |
|
| 500 | - * |
|
| 501 | - * |
|
| 502 | - * @param WPInv_Invoice $invoice Invoice. |
|
| 503 | - * @param array $submission_data Posted checkout fields. |
|
| 504 | - * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
| 505 | - * @return array |
|
| 506 | - */ |
|
| 507 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
| 499 | + * Process Payment. |
|
| 500 | + * |
|
| 501 | + * |
|
| 502 | + * @param WPInv_Invoice $invoice Invoice. |
|
| 503 | + * @param array $submission_data Posted checkout fields. |
|
| 504 | + * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
| 505 | + * @return array |
|
| 506 | + */ |
|
| 507 | + public function process_payment( $invoice, $submission_data, $submission ) { |
|
| 508 | 508 | |
| 509 | 509 | // Validate the submitted data. |
| 510 | 510 | $payment_profile_id = $this->validate_submission_data( $submission_data, $invoice ); |
@@ -537,69 +537,69 @@ discard block |
||
| 537 | 537 | |
| 538 | 538 | exit; |
| 539 | 539 | |
| 540 | - } |
|
| 540 | + } |
|
| 541 | 541 | |
| 542 | - /** |
|
| 543 | - * Processes the initial payment. |
|
| 544 | - * |
|
| 542 | + /** |
|
| 543 | + * Processes the initial payment. |
|
| 544 | + * |
|
| 545 | 545 | * @param WPInv_Invoice $invoice Invoice. |
| 546 | - */ |
|
| 547 | - protected function process_initial_payment( $invoice ) { |
|
| 546 | + */ |
|
| 547 | + protected function process_initial_payment( $invoice ) { |
|
| 548 | 548 | |
| 549 | - $payment_profile_id = get_post_meta( $invoice->get_id(), 'getpaid_authorizenet_profile_id', true ); |
|
| 549 | + $payment_profile_id = get_post_meta( $invoice->get_id(), 'getpaid_authorizenet_profile_id', true ); |
|
| 550 | 550 | $customer_profile = get_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), true ); |
| 551 | - $result = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $invoice ); |
|
| 551 | + $result = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $invoice ); |
|
| 552 | 552 | |
| 553 | - // Do we have an error? |
|
| 554 | - if ( is_wp_error( $result ) ) { |
|
| 555 | - wpinv_set_error( $result->get_error_code(), $result->get_error_message() ); |
|
| 556 | - wpinv_send_back_to_checkout( $invoice ); |
|
| 557 | - } |
|
| 553 | + // Do we have an error? |
|
| 554 | + if ( is_wp_error( $result ) ) { |
|
| 555 | + wpinv_set_error( $result->get_error_code(), $result->get_error_message() ); |
|
| 556 | + wpinv_send_back_to_checkout( $invoice ); |
|
| 557 | + } |
|
| 558 | 558 | |
| 559 | - // Process the response. |
|
| 560 | - $this->process_charge_response( $result, $invoice ); |
|
| 559 | + // Process the response. |
|
| 560 | + $this->process_charge_response( $result, $invoice ); |
|
| 561 | 561 | |
| 562 | - if ( wpinv_get_errors() ) { |
|
| 563 | - wpinv_send_back_to_checkout( $invoice ); |
|
| 564 | - } |
|
| 562 | + if ( wpinv_get_errors() ) { |
|
| 563 | + wpinv_send_back_to_checkout( $invoice ); |
|
| 564 | + } |
|
| 565 | 565 | |
| 566 | - } |
|
| 566 | + } |
|
| 567 | 567 | |
| 568 | 568 | /** |
| 569 | - * Processes recurring payments. |
|
| 570 | - * |
|
| 569 | + * Processes recurring payments. |
|
| 570 | + * |
|
| 571 | 571 | * @param WPInv_Invoice $invoice Invoice. |
| 572 | 572 | * @param WPInv_Subscription $subscription Subscription. |
| 573 | - */ |
|
| 574 | - public function process_subscription( $invoice, $subscription ) { |
|
| 573 | + */ |
|
| 574 | + public function process_subscription( $invoice, $subscription ) { |
|
| 575 | 575 | |
| 576 | 576 | // Check if there is an initial amount to charge. |
| 577 | 577 | if ( (float) $invoice->get_total() > 0 ) { |
| 578 | - $this->process_initial_payment( $invoice ); |
|
| 578 | + $this->process_initial_payment( $invoice ); |
|
| 579 | 579 | } |
| 580 | 580 | |
| 581 | 581 | // Activate the subscription. |
| 582 | 582 | $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() ); |
| 583 | 583 | $expiry = date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ); |
| 584 | 584 | |
| 585 | - $subscription->set_next_renewal_date( $expiry ); |
|
| 586 | - $subscription->set_date_created( current_time( 'mysql' ) ); |
|
| 587 | - $subscription->set_profile_id( $invoice->generate_key() ); |
|
| 588 | - $subscription->activate(); |
|
| 585 | + $subscription->set_next_renewal_date( $expiry ); |
|
| 586 | + $subscription->set_date_created( current_time( 'mysql' ) ); |
|
| 587 | + $subscription->set_profile_id( $invoice->generate_key() ); |
|
| 588 | + $subscription->activate(); |
|
| 589 | 589 | |
| 590 | - // Redirect to the success page. |
|
| 590 | + // Redirect to the success page. |
|
| 591 | 591 | wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) ); |
| 592 | 592 | |
| 593 | 593 | } |
| 594 | 594 | |
| 595 | - /** |
|
| 596 | - * (Maybe) renews an authorize.net subscription profile. |
|
| 597 | - * |
|
| 598 | - * |
|
| 599 | - * @param bool $should_expire |
|
| 595 | + /** |
|
| 596 | + * (Maybe) renews an authorize.net subscription profile. |
|
| 597 | + * |
|
| 598 | + * |
|
| 599 | + * @param bool $should_expire |
|
| 600 | 600 | * @param WPInv_Subscription $subscription |
| 601 | - */ |
|
| 602 | - public function maybe_renew_subscription( $should_expire, $subscription ) { |
|
| 601 | + */ |
|
| 602 | + public function maybe_renew_subscription( $should_expire, $subscription ) { |
|
| 603 | 603 | |
| 604 | 604 | // Ensure its our subscription && it's active. |
| 605 | 605 | if ( $this->id != $subscription->get_gateway() || ! $subscription->has_status( 'active trialling' ) ) { |
@@ -616,18 +616,18 @@ discard block |
||
| 616 | 616 | |
| 617 | 617 | return false; |
| 618 | 618 | |
| 619 | - } |
|
| 619 | + } |
|
| 620 | 620 | |
| 621 | 621 | /** |
| 622 | - * Renews a subscription. |
|
| 623 | - * |
|
| 622 | + * Renews a subscription. |
|
| 623 | + * |
|
| 624 | 624 | * @param WPInv_Subscription $subscription |
| 625 | - */ |
|
| 626 | - public function renew_subscription( $subscription ) { |
|
| 625 | + */ |
|
| 626 | + public function renew_subscription( $subscription ) { |
|
| 627 | 627 | |
| 628 | - // Generate the renewal invoice. |
|
| 629 | - $new_invoice = $subscription->create_payment(); |
|
| 630 | - $old_invoice = $subscription->get_parent_payment(); |
|
| 628 | + // Generate the renewal invoice. |
|
| 629 | + $new_invoice = $subscription->create_payment(); |
|
| 630 | + $old_invoice = $subscription->get_parent_payment(); |
|
| 631 | 631 | |
| 632 | 632 | if ( empty( $new_invoice ) ) { |
| 633 | 633 | $old_invoice->add_note( __( 'Error generating a renewal invoice.', 'invoicing' ), false, false, false ); |
@@ -636,37 +636,37 @@ discard block |
||
| 636 | 636 | } |
| 637 | 637 | |
| 638 | 638 | // Charge the payment method. |
| 639 | - $payment_profile_id = get_post_meta( $old_invoice->get_id(), 'getpaid_authorizenet_profile_id', true ); |
|
| 640 | - $customer_profile = get_user_meta( $old_invoice->get_user_id(), $this->get_customer_profile_meta_name( $old_invoice ), true ); |
|
| 641 | - $result = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $new_invoice ); |
|
| 642 | - |
|
| 643 | - // Do we have an error? |
|
| 644 | - if ( is_wp_error( $result ) ) { |
|
| 645 | - |
|
| 646 | - $old_invoice->add_note( |
|
| 647 | - sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), $result->get_error_message() ), |
|
| 648 | - true, |
|
| 649 | - false, |
|
| 650 | - true |
|
| 651 | - ); |
|
| 652 | - $subscription->failing(); |
|
| 653 | - return; |
|
| 654 | - |
|
| 655 | - } |
|
| 656 | - |
|
| 657 | - // Process the response. |
|
| 658 | - $this->process_charge_response( $result, $new_invoice ); |
|
| 659 | - |
|
| 660 | - if ( wpinv_get_errors() ) { |
|
| 661 | - |
|
| 662 | - $old_invoice->add_note( |
|
| 663 | - sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), getpaid_get_errors_html() ), |
|
| 664 | - true, |
|
| 665 | - false, |
|
| 666 | - true |
|
| 667 | - ); |
|
| 668 | - $subscription->failing(); |
|
| 669 | - return; |
|
| 639 | + $payment_profile_id = get_post_meta( $old_invoice->get_id(), 'getpaid_authorizenet_profile_id', true ); |
|
| 640 | + $customer_profile = get_user_meta( $old_invoice->get_user_id(), $this->get_customer_profile_meta_name( $old_invoice ), true ); |
|
| 641 | + $result = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $new_invoice ); |
|
| 642 | + |
|
| 643 | + // Do we have an error? |
|
| 644 | + if ( is_wp_error( $result ) ) { |
|
| 645 | + |
|
| 646 | + $old_invoice->add_note( |
|
| 647 | + sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), $result->get_error_message() ), |
|
| 648 | + true, |
|
| 649 | + false, |
|
| 650 | + true |
|
| 651 | + ); |
|
| 652 | + $subscription->failing(); |
|
| 653 | + return; |
|
| 654 | + |
|
| 655 | + } |
|
| 656 | + |
|
| 657 | + // Process the response. |
|
| 658 | + $this->process_charge_response( $result, $new_invoice ); |
|
| 659 | + |
|
| 660 | + if ( wpinv_get_errors() ) { |
|
| 661 | + |
|
| 662 | + $old_invoice->add_note( |
|
| 663 | + sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), getpaid_get_errors_html() ), |
|
| 664 | + true, |
|
| 665 | + false, |
|
| 666 | + true |
|
| 667 | + ); |
|
| 668 | + $subscription->failing(); |
|
| 669 | + return; |
|
| 670 | 670 | |
| 671 | 671 | } |
| 672 | 672 | |
@@ -675,13 +675,13 @@ discard block |
||
| 675 | 675 | } |
| 676 | 676 | |
| 677 | 677 | /** |
| 678 | - * Processes invoice addons. |
|
| 679 | - * |
|
| 680 | - * @param WPInv_Invoice $invoice |
|
| 681 | - * @param GetPaid_Form_Item[] $items |
|
| 682 | - * @return WPInv_Invoice |
|
| 683 | - */ |
|
| 684 | - public function process_addons( $invoice, $items ) { |
|
| 678 | + * Processes invoice addons. |
|
| 679 | + * |
|
| 680 | + * @param WPInv_Invoice $invoice |
|
| 681 | + * @param GetPaid_Form_Item[] $items |
|
| 682 | + * @return WPInv_Invoice |
|
| 683 | + */ |
|
| 684 | + public function process_addons( $invoice, $items ) { |
|
| 685 | 685 | |
| 686 | 686 | global $getpaid_authorize_addons; |
| 687 | 687 | |
@@ -701,7 +701,7 @@ discard block |
||
| 701 | 701 | $invoice->recalculate_total(); |
| 702 | 702 | |
| 703 | 703 | $payment_profile_id = get_post_meta( $invoice->get_id(), 'getpaid_authorizenet_profile_id', true ); |
| 704 | - $customer_profile = get_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), true ); |
|
| 704 | + $customer_profile = get_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), true ); |
|
| 705 | 705 | |
| 706 | 706 | add_filter( 'getpaid_authorizenet_charge_customer_payment_profile_args', array( $this, 'filter_addons_request' ), 10, 2 ); |
| 707 | 707 | $result = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $invoice ); |
@@ -716,11 +716,11 @@ discard block |
||
| 716 | 716 | } |
| 717 | 717 | |
| 718 | 718 | /** |
| 719 | - * Processes invoice addons. |
|
| 720 | - * |
|
| 719 | + * Processes invoice addons. |
|
| 720 | + * |
|
| 721 | 721 | * @param array $args |
| 722 | - * @return array |
|
| 723 | - */ |
|
| 722 | + * @return array |
|
| 723 | + */ |
|
| 724 | 724 | public function filter_addons_request( $args ) { |
| 725 | 725 | |
| 726 | 726 | global $getpaid_authorize_addons; |
@@ -754,11 +754,11 @@ discard block |
||
| 754 | 754 | } |
| 755 | 755 | |
| 756 | 756 | /** |
| 757 | - * Filters the gateway settings. |
|
| 758 | - * |
|
| 759 | - * @param array $admin_settings |
|
| 760 | - */ |
|
| 761 | - public function admin_settings( $admin_settings ) { |
|
| 757 | + * Filters the gateway settings. |
|
| 758 | + * |
|
| 759 | + * @param array $admin_settings |
|
| 760 | + */ |
|
| 761 | + public function admin_settings( $admin_settings ) { |
|
| 762 | 762 | |
| 763 | 763 | $currencies = sprintf( |
| 764 | 764 | __( 'Supported Currencies: %s', 'invoicing' ), |
@@ -798,7 +798,7 @@ discard block |
||
| 798 | 798 | 'readonly' => true, |
| 799 | 799 | ); |
| 800 | 800 | |
| 801 | - return $admin_settings; |
|
| 802 | - } |
|
| 801 | + return $admin_settings; |
|
| 802 | + } |
|
| 803 | 803 | |
| 804 | 804 | } |
@@ -235,7 +235,7 @@ |
||
| 235 | 235 | do_action( 'getpaid_checkout_invoice_exception', $invoice ); |
| 236 | 236 | } |
| 237 | 237 | |
| 238 | - // Do we have any errors? |
|
| 238 | + // Do we have any errors? |
|
| 239 | 239 | if ( wpinv_get_errors() ) { |
| 240 | 240 | wp_send_json_error( getpaid_get_errors_html( true, false ) ); |
| 241 | 241 | } |
@@ -14,70 +14,70 @@ discard block |
||
| 14 | 14 | class WPInv_Ajax { |
| 15 | 15 | |
| 16 | 16 | /** |
| 17 | - * Hook in ajax handlers. |
|
| 18 | - */ |
|
| 19 | - public static function init() { |
|
| 20 | - add_action( 'init', array( __CLASS__, 'define_ajax' ), 0 ); |
|
| 21 | - add_action( 'template_redirect', array( __CLASS__, 'do_wpinv_ajax' ), 0 ); |
|
| 22 | - self::add_ajax_events(); |
|
| 17 | + * Hook in ajax handlers. |
|
| 18 | + */ |
|
| 19 | + public static function init() { |
|
| 20 | + add_action( 'init', array( __CLASS__, 'define_ajax' ), 0 ); |
|
| 21 | + add_action( 'template_redirect', array( __CLASS__, 'do_wpinv_ajax' ), 0 ); |
|
| 22 | + self::add_ajax_events(); |
|
| 23 | 23 | } |
| 24 | 24 | |
| 25 | 25 | /** |
| 26 | - * Set GetPaid AJAX constant and headers. |
|
| 27 | - */ |
|
| 28 | - public static function define_ajax() { |
|
| 29 | - |
|
| 30 | - if ( ! empty( $_GET['wpinv-ajax'] ) ) { |
|
| 31 | - getpaid_maybe_define_constant( 'DOING_AJAX', true ); |
|
| 32 | - getpaid_maybe_define_constant( 'WPInv_DOING_AJAX', true ); |
|
| 33 | - if ( ! WP_DEBUG || ( WP_DEBUG && ! WP_DEBUG_DISPLAY ) ) { |
|
| 34 | - /** @scrutinizer ignore-unhandled */ @ini_set( 'display_errors', 0 ); |
|
| 35 | - } |
|
| 36 | - $GLOBALS['wpdb']->hide_errors(); |
|
| 37 | - } |
|
| 26 | + * Set GetPaid AJAX constant and headers. |
|
| 27 | + */ |
|
| 28 | + public static function define_ajax() { |
|
| 29 | + |
|
| 30 | + if ( ! empty( $_GET['wpinv-ajax'] ) ) { |
|
| 31 | + getpaid_maybe_define_constant( 'DOING_AJAX', true ); |
|
| 32 | + getpaid_maybe_define_constant( 'WPInv_DOING_AJAX', true ); |
|
| 33 | + if ( ! WP_DEBUG || ( WP_DEBUG && ! WP_DEBUG_DISPLAY ) ) { |
|
| 34 | + /** @scrutinizer ignore-unhandled */ @ini_set( 'display_errors', 0 ); |
|
| 35 | + } |
|
| 36 | + $GLOBALS['wpdb']->hide_errors(); |
|
| 37 | + } |
|
| 38 | 38 | |
| 39 | 39 | } |
| 40 | 40 | |
| 41 | 41 | /** |
| 42 | - * Send headers for GetPaid Ajax Requests. |
|
| 43 | - * |
|
| 44 | - * @since 1.0.18 |
|
| 45 | - */ |
|
| 46 | - private static function wpinv_ajax_headers() { |
|
| 47 | - if ( ! headers_sent() ) { |
|
| 48 | - send_origin_headers(); |
|
| 49 | - send_nosniff_header(); |
|
| 50 | - nocache_headers(); |
|
| 51 | - header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) ); |
|
| 52 | - header( 'X-Robots-Tag: noindex' ); |
|
| 53 | - status_header( 200 ); |
|
| 54 | - } |
|
| 42 | + * Send headers for GetPaid Ajax Requests. |
|
| 43 | + * |
|
| 44 | + * @since 1.0.18 |
|
| 45 | + */ |
|
| 46 | + private static function wpinv_ajax_headers() { |
|
| 47 | + if ( ! headers_sent() ) { |
|
| 48 | + send_origin_headers(); |
|
| 49 | + send_nosniff_header(); |
|
| 50 | + nocache_headers(); |
|
| 51 | + header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) ); |
|
| 52 | + header( 'X-Robots-Tag: noindex' ); |
|
| 53 | + status_header( 200 ); |
|
| 54 | + } |
|
| 55 | 55 | } |
| 56 | 56 | |
| 57 | 57 | /** |
| 58 | - * Check for GetPaid Ajax request and fire action. |
|
| 59 | - */ |
|
| 60 | - public static function do_wpinv_ajax() { |
|
| 61 | - global $wp_query; |
|
| 58 | + * Check for GetPaid Ajax request and fire action. |
|
| 59 | + */ |
|
| 60 | + public static function do_wpinv_ajax() { |
|
| 61 | + global $wp_query; |
|
| 62 | 62 | |
| 63 | - if ( ! empty( $_GET['wpinv-ajax'] ) ) { |
|
| 64 | - $wp_query->set( 'wpinv-ajax', sanitize_text_field( wp_unslash( $_GET['wpinv-ajax'] ) ) ); |
|
| 65 | - } |
|
| 63 | + if ( ! empty( $_GET['wpinv-ajax'] ) ) { |
|
| 64 | + $wp_query->set( 'wpinv-ajax', sanitize_text_field( wp_unslash( $_GET['wpinv-ajax'] ) ) ); |
|
| 65 | + } |
|
| 66 | 66 | |
| 67 | - $action = $wp_query->get( 'wpinv-ajax' ); |
|
| 67 | + $action = $wp_query->get( 'wpinv-ajax' ); |
|
| 68 | 68 | |
| 69 | - if ( $action ) { |
|
| 70 | - self::wpinv_ajax_headers(); |
|
| 71 | - $action = sanitize_text_field( $action ); |
|
| 72 | - do_action( 'wpinv_ajax_' . $action ); |
|
| 73 | - wp_die(); |
|
| 74 | - } |
|
| 69 | + if ( $action ) { |
|
| 70 | + self::wpinv_ajax_headers(); |
|
| 71 | + $action = sanitize_text_field( $action ); |
|
| 72 | + do_action( 'wpinv_ajax_' . $action ); |
|
| 73 | + wp_die(); |
|
| 74 | + } |
|
| 75 | 75 | |
| 76 | 76 | } |
| 77 | 77 | |
| 78 | 78 | /** |
| 79 | - * Hook in ajax methods. |
|
| 80 | - */ |
|
| 79 | + * Hook in ajax methods. |
|
| 80 | + */ |
|
| 81 | 81 | public static function add_ajax_events() { |
| 82 | 82 | |
| 83 | 83 | // array( 'event' => is_frontend ) |
@@ -255,24 +255,24 @@ discard block |
||
| 255 | 255 | check_ajax_referer( 'getpaid_form_nonce' ); |
| 256 | 256 | |
| 257 | 257 | // Is the request set up correctly? |
| 258 | - if ( empty( $_GET['form'] ) && empty( $_GET['item'] ) ) { |
|
| 259 | - echo aui()->alert( |
|
| 260 | - array( |
|
| 261 | - 'type' => 'warning', |
|
| 262 | - 'content' => __( 'No payment form or item provided', 'invoicing' ), |
|
| 263 | - ) |
|
| 258 | + if ( empty( $_GET['form'] ) && empty( $_GET['item'] ) ) { |
|
| 259 | + echo aui()->alert( |
|
| 260 | + array( |
|
| 261 | + 'type' => 'warning', |
|
| 262 | + 'content' => __( 'No payment form or item provided', 'invoicing' ), |
|
| 263 | + ) |
|
| 264 | 264 | ); |
| 265 | 265 | exit; |
| 266 | 266 | } |
| 267 | 267 | |
| 268 | 268 | // Payment form or button? |
| 269 | - if ( ! empty( $_GET['form'] ) ) { |
|
| 269 | + if ( ! empty( $_GET['form'] ) ) { |
|
| 270 | 270 | getpaid_display_payment_form( urldecode( $_GET['form'] ) ); |
| 271 | - } else if( ! empty( $_GET['invoice'] ) ) { |
|
| 272 | - getpaid_display_invoice_payment_form( urldecode( $_GET['invoice'] ) ); |
|
| 271 | + } else if( ! empty( $_GET['invoice'] ) ) { |
|
| 272 | + getpaid_display_invoice_payment_form( urldecode( $_GET['invoice'] ) ); |
|
| 273 | 273 | } else { |
| 274 | - $items = getpaid_convert_items_to_array( urldecode( $_GET['item'] ) ); |
|
| 275 | - getpaid_display_item_payment_form( $items ); |
|
| 274 | + $items = getpaid_convert_items_to_array( urldecode( $_GET['item'] ) ); |
|
| 275 | + getpaid_display_item_payment_form( $items ); |
|
| 276 | 276 | } |
| 277 | 277 | |
| 278 | 278 | exit; |
@@ -159,11 +159,11 @@ discard block |
||
| 159 | 159 | */ |
| 160 | 160 | function wpinv_get_capability( $capalibilty = 'manage_invoicing' ) { |
| 161 | 161 | |
| 162 | - if ( current_user_can( 'manage_options' ) ) { |
|
| 163 | - return 'manage_options'; |
|
| 164 | - }; |
|
| 162 | + if ( current_user_can( 'manage_options' ) ) { |
|
| 163 | + return 'manage_options'; |
|
| 164 | + }; |
|
| 165 | 165 | |
| 166 | - return $capalibilty; |
|
| 166 | + return $capalibilty; |
|
| 167 | 167 | } |
| 168 | 168 | |
| 169 | 169 | /** |
@@ -185,10 +185,10 @@ discard block |
||
| 185 | 185 | function wpinv_create_user( $email ) { |
| 186 | 186 | |
| 187 | 187 | // Prepare user values. |
| 188 | - $args = array( |
|
| 189 | - 'user_login' => wpinv_generate_user_name( $email ), |
|
| 190 | - 'user_pass' => wp_generate_password(), |
|
| 191 | - 'user_email' => $email, |
|
| 188 | + $args = array( |
|
| 189 | + 'user_login' => wpinv_generate_user_name( $email ), |
|
| 190 | + 'user_pass' => wp_generate_password(), |
|
| 191 | + 'user_email' => $email, |
|
| 192 | 192 | 'role' => 'subscriber', |
| 193 | 193 | ); |
| 194 | 194 | |
@@ -205,20 +205,20 @@ discard block |
||
| 205 | 205 | function wpinv_generate_user_name( $prefix = '' ) { |
| 206 | 206 | |
| 207 | 207 | // If prefix is an email, retrieve the part before the email. |
| 208 | - $prefix = strtok( $prefix, '@' ); |
|
| 208 | + $prefix = strtok( $prefix, '@' ); |
|
| 209 | 209 | |
| 210 | - // Trim to 4 characters max. |
|
| 211 | - $prefix = sanitize_user( $prefix ); |
|
| 210 | + // Trim to 4 characters max. |
|
| 211 | + $prefix = sanitize_user( $prefix ); |
|
| 212 | 212 | |
| 213 | - $illegal_logins = (array) apply_filters( 'illegal_user_logins', array() ); |
|
| 214 | - if ( empty( $prefix ) || in_array( strtolower( $prefix ), array_map( 'strtolower', $illegal_logins ), true ) ) { |
|
| 215 | - $prefix = 'gtp'; |
|
| 216 | - } |
|
| 213 | + $illegal_logins = (array) apply_filters( 'illegal_user_logins', array() ); |
|
| 214 | + if ( empty( $prefix ) || in_array( strtolower( $prefix ), array_map( 'strtolower', $illegal_logins ), true ) ) { |
|
| 215 | + $prefix = 'gtp'; |
|
| 216 | + } |
|
| 217 | 217 | |
| 218 | - $username = $prefix . '_' . zeroise( wp_rand( 0, 9999 ), 4 ); |
|
| 219 | - if ( username_exists( $username ) ) { |
|
| 220 | - return wpinv_generate_user_name( $username ); |
|
| 221 | - } |
|
| 218 | + $username = $prefix . '_' . zeroise( wp_rand( 0, 9999 ), 4 ); |
|
| 219 | + if ( username_exists( $username ) ) { |
|
| 220 | + return wpinv_generate_user_name( $username ); |
|
| 221 | + } |
|
| 222 | 222 | |
| 223 | 223 | return $username; |
| 224 | 224 | } |
@@ -14,144 +14,144 @@ discard block |
||
| 14 | 14 | */ |
| 15 | 15 | class WPInv_Subscriptions_Widget extends WP_Super_Duper { |
| 16 | 16 | |
| 17 | - /** |
|
| 18 | - * Register the widget with WordPress. |
|
| 19 | - * |
|
| 20 | - */ |
|
| 21 | - public function __construct() { |
|
| 22 | - |
|
| 23 | - $options = array( |
|
| 24 | - 'textdomain' => 'invoicing', |
|
| 25 | - 'block-icon' => 'controls-repeat', |
|
| 26 | - 'block-category'=> 'widgets', |
|
| 27 | - 'block-keywords'=> "['invoicing','subscriptions', 'getpaid']", |
|
| 28 | - 'class_name' => __CLASS__, |
|
| 29 | - 'base_id' => 'wpinv_subscriptions', |
|
| 30 | - 'name' => __( 'GetPaid > Subscriptions', 'invoicing' ), |
|
| 31 | - 'widget_ops' => array( |
|
| 32 | - 'classname' => 'getpaid-subscriptions bsui', |
|
| 33 | - 'description' => esc_html__( "Displays the current user's subscriptions.", 'invoicing' ), |
|
| 34 | - ), |
|
| 35 | - 'arguments' => array( |
|
| 36 | - 'title' => array( |
|
| 37 | - 'title' => __( 'Widget title', 'invoicing' ), |
|
| 38 | - 'desc' => __( 'Enter widget title.', 'invoicing' ), |
|
| 39 | - 'type' => 'text', |
|
| 40 | - 'desc_tip' => true, |
|
| 41 | - 'default' => '', |
|
| 42 | - 'advanced' => false |
|
| 43 | - ), |
|
| 44 | - ) |
|
| 45 | - |
|
| 46 | - ); |
|
| 47 | - |
|
| 48 | - |
|
| 49 | - parent::__construct( $options ); |
|
| 50 | - } |
|
| 51 | - |
|
| 52 | - /** |
|
| 53 | - * Retrieves current user's subscriptions. |
|
| 54 | - * |
|
| 55 | - * @return GetPaid_Subscriptions_Query |
|
| 56 | - */ |
|
| 57 | - public function get_subscriptions() { |
|
| 58 | - |
|
| 59 | - // Prepare license args. |
|
| 60 | - $args = array( |
|
| 61 | - 'customer_in' => get_current_user_id(), |
|
| 62 | - 'paged' => ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1, |
|
| 63 | - ); |
|
| 64 | - |
|
| 65 | - return new GetPaid_Subscriptions_Query( $args ); |
|
| 66 | - |
|
| 67 | - } |
|
| 68 | - |
|
| 69 | - /** |
|
| 70 | - * The Super block output function. |
|
| 71 | - * |
|
| 72 | - * @param array $args |
|
| 73 | - * @param array $widget_args |
|
| 74 | - * @param string $content |
|
| 75 | - * |
|
| 76 | - * @return mixed|string|bool |
|
| 77 | - */ |
|
| 78 | - public function output( $args = array(), $widget_args = array(), $content = '' ) { |
|
| 79 | - |
|
| 80 | - // Ensure that the user is logged in. |
|
| 81 | - if ( ! is_user_logged_in() ) { |
|
| 82 | - |
|
| 83 | - return aui()->alert( |
|
| 84 | - array( |
|
| 85 | - 'content' => wp_kses_post( __( 'You need to log-in or create an account to view this section.', 'invoicing' ) ), |
|
| 86 | - 'type' => 'error', |
|
| 87 | - ) |
|
| 88 | - ); |
|
| 89 | - |
|
| 90 | - } |
|
| 91 | - |
|
| 92 | - // Are we displaying a single subscription? |
|
| 93 | - if ( isset( $_GET['subscription'] ) ) { |
|
| 94 | - return $this->display_single_subscription( trim( $_GET['subscription'] ) ); |
|
| 95 | - } |
|
| 96 | - |
|
| 97 | - // Retrieve the user's subscriptions. |
|
| 98 | - $subscriptions = $this->get_subscriptions(); |
|
| 99 | - |
|
| 100 | - // Start the output buffer. |
|
| 101 | - ob_start(); |
|
| 102 | - |
|
| 103 | - // Backwards compatibility. |
|
| 104 | - do_action( 'wpinv_before_user_subscriptions' ); |
|
| 105 | - |
|
| 106 | - // Display errors and notices. |
|
| 107 | - wpinv_print_errors(); |
|
| 108 | - |
|
| 109 | - do_action( 'getpaid_license_manager_before_subscriptions', $subscriptions ); |
|
| 110 | - |
|
| 111 | - // Print the table header. |
|
| 112 | - $this->print_table_header(); |
|
| 113 | - |
|
| 114 | - // Print table body. |
|
| 115 | - $this->print_table_body( $subscriptions->get_results() ); |
|
| 116 | - |
|
| 117 | - // Print table footer. |
|
| 118 | - $this->print_table_footer(); |
|
| 119 | - |
|
| 120 | - // Print the navigation. |
|
| 121 | - $this->print_navigation( $subscriptions->get_total() ); |
|
| 122 | - |
|
| 123 | - // Backwards compatibility. |
|
| 124 | - do_action( 'wpinv_after_user_subscriptions' ); |
|
| 125 | - |
|
| 126 | - // Return the output. |
|
| 127 | - return ob_get_clean(); |
|
| 128 | - |
|
| 129 | - } |
|
| 130 | - |
|
| 131 | - /** |
|
| 132 | - * Retrieves the subscription columns. |
|
| 133 | - * |
|
| 134 | - * @return array |
|
| 135 | - */ |
|
| 136 | - public function get_subscriptions_table_columns() { |
|
| 17 | + /** |
|
| 18 | + * Register the widget with WordPress. |
|
| 19 | + * |
|
| 20 | + */ |
|
| 21 | + public function __construct() { |
|
| 22 | + |
|
| 23 | + $options = array( |
|
| 24 | + 'textdomain' => 'invoicing', |
|
| 25 | + 'block-icon' => 'controls-repeat', |
|
| 26 | + 'block-category'=> 'widgets', |
|
| 27 | + 'block-keywords'=> "['invoicing','subscriptions', 'getpaid']", |
|
| 28 | + 'class_name' => __CLASS__, |
|
| 29 | + 'base_id' => 'wpinv_subscriptions', |
|
| 30 | + 'name' => __( 'GetPaid > Subscriptions', 'invoicing' ), |
|
| 31 | + 'widget_ops' => array( |
|
| 32 | + 'classname' => 'getpaid-subscriptions bsui', |
|
| 33 | + 'description' => esc_html__( "Displays the current user's subscriptions.", 'invoicing' ), |
|
| 34 | + ), |
|
| 35 | + 'arguments' => array( |
|
| 36 | + 'title' => array( |
|
| 37 | + 'title' => __( 'Widget title', 'invoicing' ), |
|
| 38 | + 'desc' => __( 'Enter widget title.', 'invoicing' ), |
|
| 39 | + 'type' => 'text', |
|
| 40 | + 'desc_tip' => true, |
|
| 41 | + 'default' => '', |
|
| 42 | + 'advanced' => false |
|
| 43 | + ), |
|
| 44 | + ) |
|
| 45 | + |
|
| 46 | + ); |
|
| 47 | + |
|
| 48 | + |
|
| 49 | + parent::__construct( $options ); |
|
| 50 | + } |
|
| 51 | + |
|
| 52 | + /** |
|
| 53 | + * Retrieves current user's subscriptions. |
|
| 54 | + * |
|
| 55 | + * @return GetPaid_Subscriptions_Query |
|
| 56 | + */ |
|
| 57 | + public function get_subscriptions() { |
|
| 58 | + |
|
| 59 | + // Prepare license args. |
|
| 60 | + $args = array( |
|
| 61 | + 'customer_in' => get_current_user_id(), |
|
| 62 | + 'paged' => ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1, |
|
| 63 | + ); |
|
| 64 | + |
|
| 65 | + return new GetPaid_Subscriptions_Query( $args ); |
|
| 66 | + |
|
| 67 | + } |
|
| 68 | + |
|
| 69 | + /** |
|
| 70 | + * The Super block output function. |
|
| 71 | + * |
|
| 72 | + * @param array $args |
|
| 73 | + * @param array $widget_args |
|
| 74 | + * @param string $content |
|
| 75 | + * |
|
| 76 | + * @return mixed|string|bool |
|
| 77 | + */ |
|
| 78 | + public function output( $args = array(), $widget_args = array(), $content = '' ) { |
|
| 79 | + |
|
| 80 | + // Ensure that the user is logged in. |
|
| 81 | + if ( ! is_user_logged_in() ) { |
|
| 82 | + |
|
| 83 | + return aui()->alert( |
|
| 84 | + array( |
|
| 85 | + 'content' => wp_kses_post( __( 'You need to log-in or create an account to view this section.', 'invoicing' ) ), |
|
| 86 | + 'type' => 'error', |
|
| 87 | + ) |
|
| 88 | + ); |
|
| 89 | + |
|
| 90 | + } |
|
| 91 | + |
|
| 92 | + // Are we displaying a single subscription? |
|
| 93 | + if ( isset( $_GET['subscription'] ) ) { |
|
| 94 | + return $this->display_single_subscription( trim( $_GET['subscription'] ) ); |
|
| 95 | + } |
|
| 96 | + |
|
| 97 | + // Retrieve the user's subscriptions. |
|
| 98 | + $subscriptions = $this->get_subscriptions(); |
|
| 99 | + |
|
| 100 | + // Start the output buffer. |
|
| 101 | + ob_start(); |
|
| 102 | + |
|
| 103 | + // Backwards compatibility. |
|
| 104 | + do_action( 'wpinv_before_user_subscriptions' ); |
|
| 105 | + |
|
| 106 | + // Display errors and notices. |
|
| 107 | + wpinv_print_errors(); |
|
| 108 | + |
|
| 109 | + do_action( 'getpaid_license_manager_before_subscriptions', $subscriptions ); |
|
| 110 | + |
|
| 111 | + // Print the table header. |
|
| 112 | + $this->print_table_header(); |
|
| 113 | + |
|
| 114 | + // Print table body. |
|
| 115 | + $this->print_table_body( $subscriptions->get_results() ); |
|
| 116 | + |
|
| 117 | + // Print table footer. |
|
| 118 | + $this->print_table_footer(); |
|
| 119 | + |
|
| 120 | + // Print the navigation. |
|
| 121 | + $this->print_navigation( $subscriptions->get_total() ); |
|
| 122 | + |
|
| 123 | + // Backwards compatibility. |
|
| 124 | + do_action( 'wpinv_after_user_subscriptions' ); |
|
| 125 | + |
|
| 126 | + // Return the output. |
|
| 127 | + return ob_get_clean(); |
|
| 128 | + |
|
| 129 | + } |
|
| 130 | + |
|
| 131 | + /** |
|
| 132 | + * Retrieves the subscription columns. |
|
| 133 | + * |
|
| 134 | + * @return array |
|
| 135 | + */ |
|
| 136 | + public function get_subscriptions_table_columns() { |
|
| 137 | 137 | |
| 138 | - $columns = array( |
|
| 139 | - 'subscription' => __( 'Subscription', 'invoicing' ), |
|
| 140 | - 'amount' => __( 'Amount', 'invoicing' ), |
|
| 141 | - 'renewal-date' => __( 'Next payment', 'invoicing' ), |
|
| 142 | - 'status' => __( 'Status', 'invoicing' ), |
|
| 143 | - ); |
|
| 138 | + $columns = array( |
|
| 139 | + 'subscription' => __( 'Subscription', 'invoicing' ), |
|
| 140 | + 'amount' => __( 'Amount', 'invoicing' ), |
|
| 141 | + 'renewal-date' => __( 'Next payment', 'invoicing' ), |
|
| 142 | + 'status' => __( 'Status', 'invoicing' ), |
|
| 143 | + ); |
|
| 144 | 144 | |
| 145 | - return apply_filters( 'getpaid_frontend_subscriptions_table_columns', $columns ); |
|
| 146 | - } |
|
| 145 | + return apply_filters( 'getpaid_frontend_subscriptions_table_columns', $columns ); |
|
| 146 | + } |
|
| 147 | 147 | |
| 148 | - /** |
|
| 149 | - * Displays the table header. |
|
| 150 | - * |
|
| 151 | - */ |
|
| 152 | - public function print_table_header() { |
|
| 148 | + /** |
|
| 149 | + * Displays the table header. |
|
| 150 | + * |
|
| 151 | + */ |
|
| 152 | + public function print_table_header() { |
|
| 153 | 153 | |
| 154 | - ?> |
|
| 154 | + ?> |
|
| 155 | 155 | |
| 156 | 156 | <table class="table table-bordered table-striped"> |
| 157 | 157 | |
@@ -167,121 +167,121 @@ discard block |
||
| 167 | 167 | |
| 168 | 168 | <?php |
| 169 | 169 | |
| 170 | - } |
|
| 170 | + } |
|
| 171 | 171 | |
| 172 | - /** |
|
| 173 | - * Displays the table body. |
|
| 174 | - * |
|
| 175 | - * @param WPInv_Subscription[] $subscriptions |
|
| 176 | - */ |
|
| 177 | - public function print_table_body( $subscriptions ) { |
|
| 172 | + /** |
|
| 173 | + * Displays the table body. |
|
| 174 | + * |
|
| 175 | + * @param WPInv_Subscription[] $subscriptions |
|
| 176 | + */ |
|
| 177 | + public function print_table_body( $subscriptions ) { |
|
| 178 | 178 | |
| 179 | - if ( empty( $subscriptions ) ) { |
|
| 180 | - $this->print_table_body_no_subscriptions(); |
|
| 181 | - } else { |
|
| 182 | - $this->print_table_body_subscriptions( $subscriptions ); |
|
| 183 | - } |
|
| 179 | + if ( empty( $subscriptions ) ) { |
|
| 180 | + $this->print_table_body_no_subscriptions(); |
|
| 181 | + } else { |
|
| 182 | + $this->print_table_body_subscriptions( $subscriptions ); |
|
| 183 | + } |
|
| 184 | 184 | |
| 185 | - } |
|
| 185 | + } |
|
| 186 | 186 | |
| 187 | - /** |
|
| 188 | - * Displays the table body if no subscriptions were found. |
|
| 189 | - * |
|
| 190 | - */ |
|
| 191 | - public function print_table_body_no_subscriptions() { |
|
| 187 | + /** |
|
| 188 | + * Displays the table body if no subscriptions were found. |
|
| 189 | + * |
|
| 190 | + */ |
|
| 191 | + public function print_table_body_no_subscriptions() { |
|
| 192 | 192 | |
| 193 | - ?> |
|
| 193 | + ?> |
|
| 194 | 194 | <tbody> |
| 195 | 195 | |
| 196 | 196 | <tr> |
| 197 | 197 | <td colspan="<?php echo count( $this->get_subscriptions_table_columns() ); ?>"> |
| 198 | 198 | |
| 199 | 199 | <?php |
| 200 | - echo aui()->alert( |
|
| 201 | - array( |
|
| 202 | - 'content' => wp_kses_post( __( 'No subscriptions found.', 'invoicing' ) ), |
|
| 203 | - 'type' => 'warning', |
|
| 204 | - ) |
|
| 205 | - ); |
|
| 206 | - ?> |
|
| 200 | + echo aui()->alert( |
|
| 201 | + array( |
|
| 202 | + 'content' => wp_kses_post( __( 'No subscriptions found.', 'invoicing' ) ), |
|
| 203 | + 'type' => 'warning', |
|
| 204 | + ) |
|
| 205 | + ); |
|
| 206 | + ?> |
|
| 207 | 207 | |
| 208 | 208 | </td> |
| 209 | 209 | </tr> |
| 210 | 210 | |
| 211 | 211 | </tbody> |
| 212 | 212 | <?php |
| 213 | - } |
|
| 213 | + } |
|
| 214 | 214 | |
| 215 | - /** |
|
| 216 | - * Displays the table body if subscriptions were found. |
|
| 217 | - * |
|
| 218 | - * @param WPInv_Subscription[] $subscriptions |
|
| 219 | - */ |
|
| 220 | - public function print_table_body_subscriptions( $subscriptions ) { |
|
| 215 | + /** |
|
| 216 | + * Displays the table body if subscriptions were found. |
|
| 217 | + * |
|
| 218 | + * @param WPInv_Subscription[] $subscriptions |
|
| 219 | + */ |
|
| 220 | + public function print_table_body_subscriptions( $subscriptions ) { |
|
| 221 | 221 | |
| 222 | - ?> |
|
| 222 | + ?> |
|
| 223 | 223 | <tbody> |
| 224 | 224 | |
| 225 | 225 | <?php foreach ( $subscriptions as $subscription ) : ?> |
| 226 | 226 | <tr class="getpaid-subscriptions-table-row subscription-<?php echo (int) $subscription->get_id(); ?>"> |
| 227 | 227 | <?php |
| 228 | - wpinv_get_template( |
|
| 229 | - 'subscriptions/subscriptions-table-row.php', |
|
| 230 | - array( |
|
| 231 | - 'subscription' => $subscription, |
|
| 232 | - 'widget' => $this |
|
| 233 | - ) |
|
| 234 | - ); |
|
| 235 | - ?> |
|
| 228 | + wpinv_get_template( |
|
| 229 | + 'subscriptions/subscriptions-table-row.php', |
|
| 230 | + array( |
|
| 231 | + 'subscription' => $subscription, |
|
| 232 | + 'widget' => $this |
|
| 233 | + ) |
|
| 234 | + ); |
|
| 235 | + ?> |
|
| 236 | 236 | </tr> |
| 237 | 237 | <?php endforeach; ?> |
| 238 | 238 | |
| 239 | 239 | </tbody> |
| 240 | 240 | <?php |
| 241 | - } |
|
| 242 | - |
|
| 243 | - /** |
|
| 244 | - * Adds row actions to a column |
|
| 245 | - * |
|
| 246 | - * @param string $content column content |
|
| 247 | - * @param WPInv_Subscription $subscription |
|
| 248 | - * @since 1.0.0 |
|
| 249 | - * @return string |
|
| 250 | - */ |
|
| 251 | - public function add_row_actions( $content, $subscription ) { |
|
| 252 | - |
|
| 253 | - // Prepare row actions. |
|
| 254 | - $actions = array(); |
|
| 255 | - |
|
| 256 | - // View subscription action. |
|
| 257 | - $view_url = getpaid_get_tab_url( 'gp-subscriptions', get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) ); |
|
| 258 | - $view_url = esc_url( add_query_arg( 'subscription', (int) $subscription->get_id(), $view_url ) ); |
|
| 259 | - $actions['view'] = "<a href='$view_url' class='text-decoration-none'>" . __( 'Manage Subscription', 'invoicing' ) . '</a>'; |
|
| 260 | - |
|
| 261 | - // Filter the actions. |
|
| 262 | - $actions = apply_filters( 'getpaid_subscriptions_table_subscription_actions', $actions, $subscription ); |
|
| 263 | - |
|
| 264 | - $sanitized = array(); |
|
| 265 | - foreach ( $actions as $key => $action ) { |
|
| 266 | - $key = sanitize_html_class( $key ); |
|
| 267 | - $action = wp_kses_post( $action ); |
|
| 268 | - $sanitized[] = "<span class='$key'>$action</span>"; |
|
| 269 | - } |
|
| 270 | - |
|
| 271 | - $row_actions = "<small class='form-text getpaid-subscription-item-actions'>"; |
|
| 272 | - $row_actions .= implode( ' | ', $sanitized ); |
|
| 273 | - $row_actions .= '</small>'; |
|
| 274 | - |
|
| 275 | - return $content . $row_actions; |
|
| 276 | - } |
|
| 277 | - |
|
| 278 | - /** |
|
| 279 | - * Displays the table footer. |
|
| 280 | - * |
|
| 281 | - */ |
|
| 282 | - public function print_table_footer() { |
|
| 283 | - |
|
| 284 | - ?> |
|
| 241 | + } |
|
| 242 | + |
|
| 243 | + /** |
|
| 244 | + * Adds row actions to a column |
|
| 245 | + * |
|
| 246 | + * @param string $content column content |
|
| 247 | + * @param WPInv_Subscription $subscription |
|
| 248 | + * @since 1.0.0 |
|
| 249 | + * @return string |
|
| 250 | + */ |
|
| 251 | + public function add_row_actions( $content, $subscription ) { |
|
| 252 | + |
|
| 253 | + // Prepare row actions. |
|
| 254 | + $actions = array(); |
|
| 255 | + |
|
| 256 | + // View subscription action. |
|
| 257 | + $view_url = getpaid_get_tab_url( 'gp-subscriptions', get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) ); |
|
| 258 | + $view_url = esc_url( add_query_arg( 'subscription', (int) $subscription->get_id(), $view_url ) ); |
|
| 259 | + $actions['view'] = "<a href='$view_url' class='text-decoration-none'>" . __( 'Manage Subscription', 'invoicing' ) . '</a>'; |
|
| 260 | + |
|
| 261 | + // Filter the actions. |
|
| 262 | + $actions = apply_filters( 'getpaid_subscriptions_table_subscription_actions', $actions, $subscription ); |
|
| 263 | + |
|
| 264 | + $sanitized = array(); |
|
| 265 | + foreach ( $actions as $key => $action ) { |
|
| 266 | + $key = sanitize_html_class( $key ); |
|
| 267 | + $action = wp_kses_post( $action ); |
|
| 268 | + $sanitized[] = "<span class='$key'>$action</span>"; |
|
| 269 | + } |
|
| 270 | + |
|
| 271 | + $row_actions = "<small class='form-text getpaid-subscription-item-actions'>"; |
|
| 272 | + $row_actions .= implode( ' | ', $sanitized ); |
|
| 273 | + $row_actions .= '</small>'; |
|
| 274 | + |
|
| 275 | + return $content . $row_actions; |
|
| 276 | + } |
|
| 277 | + |
|
| 278 | + /** |
|
| 279 | + * Displays the table footer. |
|
| 280 | + * |
|
| 281 | + */ |
|
| 282 | + public function print_table_footer() { |
|
| 283 | + |
|
| 284 | + ?> |
|
| 285 | 285 | |
| 286 | 286 | <tfoot> |
| 287 | 287 | <tr> |
@@ -296,129 +296,129 @@ discard block |
||
| 296 | 296 | </table> |
| 297 | 297 | <?php |
| 298 | 298 | |
| 299 | - } |
|
| 299 | + } |
|
| 300 | 300 | |
| 301 | - /** |
|
| 302 | - * Displays the navigation. |
|
| 303 | - * |
|
| 304 | - * @param int $total |
|
| 305 | - */ |
|
| 306 | - public function print_navigation( $total ) { |
|
| 301 | + /** |
|
| 302 | + * Displays the navigation. |
|
| 303 | + * |
|
| 304 | + * @param int $total |
|
| 305 | + */ |
|
| 306 | + public function print_navigation( $total ) { |
|
| 307 | 307 | |
| 308 | - if ( $total < 1 ) { |
|
| 308 | + if ( $total < 1 ) { |
|
| 309 | 309 | |
| 310 | - // Out-of-bounds, run the query again without LIMIT for total count. |
|
| 311 | - $args = array( |
|
| 312 | - 'customer_in' => get_current_user_id(), |
|
| 313 | - 'fields' => 'id', |
|
| 314 | - ); |
|
| 310 | + // Out-of-bounds, run the query again without LIMIT for total count. |
|
| 311 | + $args = array( |
|
| 312 | + 'customer_in' => get_current_user_id(), |
|
| 313 | + 'fields' => 'id', |
|
| 314 | + ); |
|
| 315 | 315 | |
| 316 | - $count_query = new GetPaid_Subscriptions_Query( $args ); |
|
| 317 | - $total = $count_query->get_total(); |
|
| 318 | - } |
|
| 316 | + $count_query = new GetPaid_Subscriptions_Query( $args ); |
|
| 317 | + $total = $count_query->get_total(); |
|
| 318 | + } |
|
| 319 | 319 | |
| 320 | - // Abort if we do not have pages. |
|
| 321 | - if ( 2 > $total ) { |
|
| 322 | - return; |
|
| 323 | - } |
|
| 320 | + // Abort if we do not have pages. |
|
| 321 | + if ( 2 > $total ) { |
|
| 322 | + return; |
|
| 323 | + } |
|
| 324 | 324 | |
| 325 | - ?> |
|
| 325 | + ?> |
|
| 326 | 326 | |
| 327 | 327 | <div class="getpaid-subscriptions-pagination"> |
| 328 | 328 | <?php |
| 329 | - $big = 999999; |
|
| 330 | - |
|
| 331 | - echo getpaid_paginate_links( |
|
| 332 | - array( |
|
| 333 | - 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), |
|
| 334 | - 'format' => '?paged=%#%', |
|
| 335 | - 'total' => (int) ceil( $total / 10 ), |
|
| 336 | - ) |
|
| 337 | - ); |
|
| 338 | - ?> |
|
| 329 | + $big = 999999; |
|
| 330 | + |
|
| 331 | + echo getpaid_paginate_links( |
|
| 332 | + array( |
|
| 333 | + 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), |
|
| 334 | + 'format' => '?paged=%#%', |
|
| 335 | + 'total' => (int) ceil( $total / 10 ), |
|
| 336 | + ) |
|
| 337 | + ); |
|
| 338 | + ?> |
|
| 339 | 339 | </div> |
| 340 | 340 | |
| 341 | 341 | <?php |
| 342 | - } |
|
| 343 | - |
|
| 344 | - /** |
|
| 345 | - * Returns a single subscription's columns. |
|
| 346 | - * |
|
| 347 | - * @param WPInv_Subscription $subscription |
|
| 348 | - * |
|
| 349 | - * @return array |
|
| 350 | - */ |
|
| 351 | - public function get_single_subscription_columns( $subscription ) { |
|
| 352 | - |
|
| 353 | - // Prepare subscription detail columns. |
|
| 354 | - $fields = apply_filters( |
|
| 355 | - 'getpaid_single_subscription_details_fields', |
|
| 356 | - array( |
|
| 357 | - 'status' => __( 'Status', 'invoicing' ), |
|
| 358 | - 'initial_amount' => __( 'Initial amount', 'invoicing' ), |
|
| 359 | - 'recurring_amount' => __( 'Recurring amount', 'invoicing' ), |
|
| 360 | - 'start_date' => __( 'Start date', 'invoicing' ), |
|
| 361 | - 'expiry_date' => __( 'Next payment', 'invoicing' ), |
|
| 362 | - 'payments' => __( 'Payments', 'invoicing' ), |
|
| 363 | - 'item' => __( 'Item', 'invoicing' ), |
|
| 364 | - ), |
|
| 365 | - $subscription |
|
| 366 | - ); |
|
| 367 | - |
|
| 368 | - if ( ! $subscription->is_active() || $subscription->is_last_renewal() ) { |
|
| 369 | - $fields['expiry_date'] = __( 'End date', 'invoicing' ); |
|
| 370 | - } |
|
| 371 | - |
|
| 372 | - if ( $subscription->get_initial_amount() == $subscription->get_recurring_amount() ) { |
|
| 373 | - unset( $fields['initial_amount'] ); |
|
| 374 | - } |
|
| 375 | - |
|
| 376 | - return $fields; |
|
| 377 | - } |
|
| 378 | - |
|
| 379 | - /** |
|
| 380 | - * Displays a single subscription. |
|
| 381 | - * |
|
| 382 | - * @param string $subscription |
|
| 383 | - * |
|
| 384 | - * @return string |
|
| 385 | - */ |
|
| 386 | - public function display_single_subscription( $subscription ) { |
|
| 387 | - |
|
| 388 | - // Fetch the subscription. |
|
| 389 | - $subscription = new WPInv_Subscription( (int) $subscription ); |
|
| 390 | - |
|
| 391 | - if ( ! $subscription->get_id() ) { |
|
| 392 | - |
|
| 393 | - return aui()->alert( |
|
| 394 | - array( |
|
| 395 | - 'content' => wp_kses_post( __( 'Subscription not found.', 'invoicing' ) ), |
|
| 396 | - 'type' => 'error', |
|
| 397 | - ) |
|
| 398 | - ); |
|
| 399 | - |
|
| 400 | - } |
|
| 401 | - |
|
| 402 | - // Ensure that the user owns this subscription key. |
|
| 403 | - if ( get_current_user_id() != $subscription->get_customer_id() ) { |
|
| 404 | - |
|
| 405 | - return aui()->alert( |
|
| 406 | - array( |
|
| 407 | - 'content' => wp_kses_post( __( 'You do not have permission to view this subscription. Ensure that you are logged in to the account that owns the subscription.', 'invoicing' ) ), |
|
| 408 | - 'type' => 'error', |
|
| 409 | - ) |
|
| 410 | - ); |
|
| 411 | - |
|
| 412 | - } |
|
| 413 | - |
|
| 414 | - return wpinv_get_template_html( |
|
| 415 | - 'subscriptions/subscription-details.php', |
|
| 416 | - array( |
|
| 417 | - 'subscription' => $subscription, |
|
| 418 | - 'widget' => $this |
|
| 419 | - ) |
|
| 420 | - ); |
|
| 421 | - |
|
| 422 | - } |
|
| 342 | + } |
|
| 343 | + |
|
| 344 | + /** |
|
| 345 | + * Returns a single subscription's columns. |
|
| 346 | + * |
|
| 347 | + * @param WPInv_Subscription $subscription |
|
| 348 | + * |
|
| 349 | + * @return array |
|
| 350 | + */ |
|
| 351 | + public function get_single_subscription_columns( $subscription ) { |
|
| 352 | + |
|
| 353 | + // Prepare subscription detail columns. |
|
| 354 | + $fields = apply_filters( |
|
| 355 | + 'getpaid_single_subscription_details_fields', |
|
| 356 | + array( |
|
| 357 | + 'status' => __( 'Status', 'invoicing' ), |
|
| 358 | + 'initial_amount' => __( 'Initial amount', 'invoicing' ), |
|
| 359 | + 'recurring_amount' => __( 'Recurring amount', 'invoicing' ), |
|
| 360 | + 'start_date' => __( 'Start date', 'invoicing' ), |
|
| 361 | + 'expiry_date' => __( 'Next payment', 'invoicing' ), |
|
| 362 | + 'payments' => __( 'Payments', 'invoicing' ), |
|
| 363 | + 'item' => __( 'Item', 'invoicing' ), |
|
| 364 | + ), |
|
| 365 | + $subscription |
|
| 366 | + ); |
|
| 367 | + |
|
| 368 | + if ( ! $subscription->is_active() || $subscription->is_last_renewal() ) { |
|
| 369 | + $fields['expiry_date'] = __( 'End date', 'invoicing' ); |
|
| 370 | + } |
|
| 371 | + |
|
| 372 | + if ( $subscription->get_initial_amount() == $subscription->get_recurring_amount() ) { |
|
| 373 | + unset( $fields['initial_amount'] ); |
|
| 374 | + } |
|
| 375 | + |
|
| 376 | + return $fields; |
|
| 377 | + } |
|
| 378 | + |
|
| 379 | + /** |
|
| 380 | + * Displays a single subscription. |
|
| 381 | + * |
|
| 382 | + * @param string $subscription |
|
| 383 | + * |
|
| 384 | + * @return string |
|
| 385 | + */ |
|
| 386 | + public function display_single_subscription( $subscription ) { |
|
| 387 | + |
|
| 388 | + // Fetch the subscription. |
|
| 389 | + $subscription = new WPInv_Subscription( (int) $subscription ); |
|
| 390 | + |
|
| 391 | + if ( ! $subscription->get_id() ) { |
|
| 392 | + |
|
| 393 | + return aui()->alert( |
|
| 394 | + array( |
|
| 395 | + 'content' => wp_kses_post( __( 'Subscription not found.', 'invoicing' ) ), |
|
| 396 | + 'type' => 'error', |
|
| 397 | + ) |
|
| 398 | + ); |
|
| 399 | + |
|
| 400 | + } |
|
| 401 | + |
|
| 402 | + // Ensure that the user owns this subscription key. |
|
| 403 | + if ( get_current_user_id() != $subscription->get_customer_id() ) { |
|
| 404 | + |
|
| 405 | + return aui()->alert( |
|
| 406 | + array( |
|
| 407 | + 'content' => wp_kses_post( __( 'You do not have permission to view this subscription. Ensure that you are logged in to the account that owns the subscription.', 'invoicing' ) ), |
|
| 408 | + 'type' => 'error', |
|
| 409 | + ) |
|
| 410 | + ); |
|
| 411 | + |
|
| 412 | + } |
|
| 413 | + |
|
| 414 | + return wpinv_get_template_html( |
|
| 415 | + 'subscriptions/subscription-details.php', |
|
| 416 | + array( |
|
| 417 | + 'subscription' => $subscription, |
|
| 418 | + 'widget' => $this |
|
| 419 | + ) |
|
| 420 | + ); |
|
| 421 | + |
|
| 422 | + } |
|
| 423 | 423 | |
| 424 | 424 | } |
@@ -67,7 +67,7 @@ discard block |
||
| 67 | 67 | * Checks if the current user cna view an invoice receipt. |
| 68 | 68 | */ |
| 69 | 69 | function wpinv_can_view_receipt( $invoice ) { |
| 70 | - return (bool) apply_filters( 'wpinv_can_view_receipt', wpinv_user_can_view_invoice( $invoice ), $invoice ); |
|
| 70 | + return (bool) apply_filters( 'wpinv_can_view_receipt', wpinv_user_can_view_invoice( $invoice ), $invoice ); |
|
| 71 | 71 | } |
| 72 | 72 | |
| 73 | 73 | /** |
@@ -1256,21 +1256,21 @@ discard block |
||
| 1256 | 1256 | */ |
| 1257 | 1257 | function getpaid_get_invoice_status_classes() { |
| 1258 | 1258 | |
| 1259 | - return apply_filters( |
|
| 1260 | - 'getpaid_get_invoice_status_classes', |
|
| 1261 | - array( |
|
| 1259 | + return apply_filters( |
|
| 1260 | + 'getpaid_get_invoice_status_classes', |
|
| 1261 | + array( |
|
| 1262 | 1262 | 'wpi-quote-declined' => 'badge-danger', |
| 1263 | 1263 | 'wpi-failed' => 'badge-danger', |
| 1264 | - 'wpi-processing' => 'badge-info', |
|
| 1265 | - 'wpi-onhold' => 'badge-warning', |
|
| 1266 | - 'wpi-quote-accepted' => 'badge-success', |
|
| 1267 | - 'publish' => 'badge-success', |
|
| 1268 | - 'wpi-renewal' => 'badge-primary', |
|
| 1264 | + 'wpi-processing' => 'badge-info', |
|
| 1265 | + 'wpi-onhold' => 'badge-warning', |
|
| 1266 | + 'wpi-quote-accepted' => 'badge-success', |
|
| 1267 | + 'publish' => 'badge-success', |
|
| 1268 | + 'wpi-renewal' => 'badge-primary', |
|
| 1269 | 1269 | 'wpi-cancelled' => 'badge-secondary', |
| 1270 | 1270 | 'wpi-pending' => 'badge-dark', |
| 1271 | 1271 | 'wpi-quote-pending' => 'badge-dark', |
| 1272 | 1272 | 'wpi-refunded' => 'badge-secondary', |
| 1273 | - ) |
|
| 1274 | - ); |
|
| 1273 | + ) |
|
| 1274 | + ); |
|
| 1275 | 1275 | |
| 1276 | 1276 | } |
@@ -13,30 +13,30 @@ discard block |
||
| 13 | 13 | class GetPaid_Bank_Transfer_Gateway extends GetPaid_Payment_Gateway { |
| 14 | 14 | |
| 15 | 15 | /** |
| 16 | - * Payment method id. |
|
| 17 | - * |
|
| 18 | - * @var string |
|
| 19 | - */ |
|
| 16 | + * Payment method id. |
|
| 17 | + * |
|
| 18 | + * @var string |
|
| 19 | + */ |
|
| 20 | 20 | public $id = 'bank_transfer'; |
| 21 | 21 | |
| 22 | - /** |
|
| 23 | - * An array of features that this gateway supports. |
|
| 24 | - * |
|
| 25 | - * @var array |
|
| 26 | - */ |
|
| 27 | - protected $supports = array( 'addons' ); |
|
| 22 | + /** |
|
| 23 | + * An array of features that this gateway supports. |
|
| 24 | + * |
|
| 25 | + * @var array |
|
| 26 | + */ |
|
| 27 | + protected $supports = array( 'addons' ); |
|
| 28 | 28 | |
| 29 | 29 | /** |
| 30 | - * Payment method order. |
|
| 31 | - * |
|
| 32 | - * @var int |
|
| 33 | - */ |
|
| 34 | - public $order = 8; |
|
| 30 | + * Payment method order. |
|
| 31 | + * |
|
| 32 | + * @var int |
|
| 33 | + */ |
|
| 34 | + public $order = 8; |
|
| 35 | 35 | |
| 36 | 36 | /** |
| 37 | - * Class constructor. |
|
| 38 | - */ |
|
| 39 | - public function __construct() { |
|
| 37 | + * Class constructor. |
|
| 38 | + */ |
|
| 39 | + public function __construct() { |
|
| 40 | 40 | parent::__construct(); |
| 41 | 41 | |
| 42 | 42 | $this->title = __( 'Direct bank transfer', 'invoicing' ); |
@@ -44,23 +44,23 @@ discard block |
||
| 44 | 44 | $this->checkout_button_text = __( 'Proceed', 'invoicing' ); |
| 45 | 45 | $this->instructions = apply_filters( 'wpinv_bank_instructions', $this->get_option( 'info' ) ); |
| 46 | 46 | |
| 47 | - add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) ); |
|
| 48 | - add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 ); |
|
| 49 | - add_action( 'wpinv_pdf_content_billing', array( $this, 'thankyou_page' ), 11 ); |
|
| 50 | - add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 ); |
|
| 47 | + add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) ); |
|
| 48 | + add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 ); |
|
| 49 | + add_action( 'wpinv_pdf_content_billing', array( $this, 'thankyou_page' ), 11 ); |
|
| 50 | + add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 ); |
|
| 51 | 51 | |
| 52 | 52 | } |
| 53 | 53 | |
| 54 | 54 | /** |
| 55 | - * Process Payment. |
|
| 56 | - * |
|
| 57 | - * |
|
| 58 | - * @param WPInv_Invoice $invoice Invoice. |
|
| 59 | - * @param array $submission_data Posted checkout fields. |
|
| 60 | - * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
| 61 | - * @return array |
|
| 62 | - */ |
|
| 63 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
| 55 | + * Process Payment. |
|
| 56 | + * |
|
| 57 | + * |
|
| 58 | + * @param WPInv_Invoice $invoice Invoice. |
|
| 59 | + * @param array $submission_data Posted checkout fields. |
|
| 60 | + * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
| 61 | + * @return array |
|
| 62 | + */ |
|
| 63 | + public function process_payment( $invoice, $submission_data, $submission ) { |
|
| 64 | 64 | |
| 65 | 65 | // Add a transaction id. |
| 66 | 66 | $invoice->set_transaction_id( $invoice->generate_key('trans_') ); |
@@ -81,66 +81,66 @@ discard block |
||
| 81 | 81 | } |
| 82 | 82 | |
| 83 | 83 | /** |
| 84 | - * Output for the order received page. |
|
| 85 | - * |
|
| 86 | - * @param WPInv_Invoice $invoice Invoice. |
|
| 87 | - */ |
|
| 88 | - public function thankyou_page( $invoice ) { |
|
| 84 | + * Output for the order received page. |
|
| 85 | + * |
|
| 86 | + * @param WPInv_Invoice $invoice Invoice. |
|
| 87 | + */ |
|
| 88 | + public function thankyou_page( $invoice ) { |
|
| 89 | 89 | |
| 90 | 90 | if ( 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
| 91 | 91 | |
| 92 | - echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL; |
|
| 92 | + echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL; |
|
| 93 | 93 | |
| 94 | 94 | if ( ! empty( $this->instructions ) ) { |
| 95 | 95 | echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) ); |
| 96 | - } |
|
| 96 | + } |
|
| 97 | 97 | |
| 98 | - $this->bank_details( $invoice ); |
|
| 98 | + $this->bank_details( $invoice ); |
|
| 99 | 99 | |
| 100 | - echo '</div>'; |
|
| 100 | + echo '</div>'; |
|
| 101 | 101 | |
| 102 | 102 | } |
| 103 | 103 | |
| 104 | - } |
|
| 104 | + } |
|
| 105 | 105 | |
| 106 | 106 | /** |
| 107 | - * Add content to the WPI emails. |
|
| 108 | - * |
|
| 109 | - * @param WPInv_Invoice $invoice Invoice. |
|
| 110 | - * @param string $email_type Email format: plain text or HTML. |
|
| 111 | - * @param bool $sent_to_admin Sent to admin. |
|
| 112 | - */ |
|
| 113 | - public function email_instructions( $invoice, $email_type, $sent_to_admin ) { |
|
| 107 | + * Add content to the WPI emails. |
|
| 108 | + * |
|
| 109 | + * @param WPInv_Invoice $invoice Invoice. |
|
| 110 | + * @param string $email_type Email format: plain text or HTML. |
|
| 111 | + * @param bool $sent_to_admin Sent to admin. |
|
| 112 | + */ |
|
| 113 | + public function email_instructions( $invoice, $email_type, $sent_to_admin ) { |
|
| 114 | 114 | |
| 115 | - if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
|
| 115 | + if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
|
| 116 | 116 | |
| 117 | - echo '<div class="wpi-email-row getpaid-bank-transfer-details">'; |
|
| 117 | + echo '<div class="wpi-email-row getpaid-bank-transfer-details">'; |
|
| 118 | 118 | |
| 119 | - if ( $this->instructions ) { |
|
| 120 | - echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL ); |
|
| 119 | + if ( $this->instructions ) { |
|
| 120 | + echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL ); |
|
| 121 | 121 | } |
| 122 | 122 | |
| 123 | - $this->bank_details( $invoice ); |
|
| 123 | + $this->bank_details( $invoice ); |
|
| 124 | 124 | |
| 125 | - echo '</div>'; |
|
| 125 | + echo '</div>'; |
|
| 126 | 126 | |
| 127 | - } |
|
| 127 | + } |
|
| 128 | 128 | |
| 129 | 129 | } |
| 130 | 130 | |
| 131 | 131 | /** |
| 132 | - * Get bank details and place into a list format. |
|
| 133 | - * |
|
| 134 | - * @param WPInv_Invoice $invoice Invoice. |
|
| 135 | - */ |
|
| 136 | - protected function bank_details( $invoice ) { |
|
| 132 | + * Get bank details and place into a list format. |
|
| 133 | + * |
|
| 134 | + * @param WPInv_Invoice $invoice Invoice. |
|
| 135 | + */ |
|
| 136 | + protected function bank_details( $invoice ) { |
|
| 137 | 137 | |
| 138 | - // Get the invoice country and country $locale. |
|
| 139 | - $country = $invoice->get_country(); |
|
| 140 | - $locale = $this->get_country_locale(); |
|
| 138 | + // Get the invoice country and country $locale. |
|
| 139 | + $country = $invoice->get_country(); |
|
| 140 | + $locale = $this->get_country_locale(); |
|
| 141 | 141 | |
| 142 | - // Get sortcode label in the $locale array and use appropriate one. |
|
| 143 | - $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
| 142 | + // Get sortcode label in the $locale array and use appropriate one. |
|
| 143 | + $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
| 144 | 144 | |
| 145 | 145 | $bank_fields = array( |
| 146 | 146 | 'ac_name' => __( 'Account Name', 'invoicing' ), |
@@ -169,144 +169,144 @@ discard block |
||
| 169 | 169 | return; |
| 170 | 170 | } |
| 171 | 171 | |
| 172 | - echo '<h3 class="getpaid-bank-transfer-title"> ' . apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ) ) . '</h3>' . PHP_EOL; |
|
| 172 | + echo '<h3 class="getpaid-bank-transfer-title"> ' . apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ) ) . '</h3>' . PHP_EOL; |
|
| 173 | 173 | |
| 174 | - echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL; |
|
| 174 | + echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL; |
|
| 175 | 175 | |
| 176 | - foreach ( $bank_info as $key => $data ) { |
|
| 176 | + foreach ( $bank_info as $key => $data ) { |
|
| 177 | 177 | |
| 178 | - $key = sanitize_html_class( $key ); |
|
| 179 | - $label = wp_kses_post( $data['label'] ); |
|
| 180 | - $value = wp_kses_post( wptexturize( $data['value'] ) ); |
|
| 178 | + $key = sanitize_html_class( $key ); |
|
| 179 | + $label = wp_kses_post( $data['label'] ); |
|
| 180 | + $value = wp_kses_post( wptexturize( $data['value'] ) ); |
|
| 181 | 181 | |
| 182 | - echo "<tr class='getpaid-bank-transfer-$key'><th>$label</th><td>$value</td></tr>" . PHP_EOL; |
|
| 183 | - } |
|
| 182 | + echo "<tr class='getpaid-bank-transfer-$key'><th>$label</th><td>$value</td></tr>" . PHP_EOL; |
|
| 183 | + } |
|
| 184 | 184 | |
| 185 | - echo '</table>'; |
|
| 185 | + echo '</table>'; |
|
| 186 | 186 | |
| 187 | 187 | } |
| 188 | 188 | |
| 189 | 189 | /** |
| 190 | - * Get country locale if localized. |
|
| 191 | - * |
|
| 192 | - * @return array |
|
| 193 | - */ |
|
| 194 | - public function get_country_locale() { |
|
| 195 | - |
|
| 196 | - if ( empty( $this->locale ) ) { |
|
| 197 | - |
|
| 198 | - // Locale information to be used - only those that are not 'Sort Code'. |
|
| 199 | - $this->locale = apply_filters( |
|
| 200 | - 'getpaid_get_bank_transfer_locale', |
|
| 201 | - array( |
|
| 202 | - 'AU' => array( |
|
| 203 | - 'sortcode' => array( |
|
| 204 | - 'label' => __( 'BSB', 'invoicing' ), |
|
| 205 | - ), |
|
| 206 | - ), |
|
| 207 | - 'CA' => array( |
|
| 208 | - 'sortcode' => array( |
|
| 209 | - 'label' => __( 'Bank transit number', 'invoicing' ), |
|
| 210 | - ), |
|
| 211 | - ), |
|
| 212 | - 'IN' => array( |
|
| 213 | - 'sortcode' => array( |
|
| 214 | - 'label' => __( 'IFSC', 'invoicing' ), |
|
| 215 | - ), |
|
| 216 | - ), |
|
| 217 | - 'IT' => array( |
|
| 218 | - 'sortcode' => array( |
|
| 219 | - 'label' => __( 'Branch sort', 'invoicing' ), |
|
| 220 | - ), |
|
| 221 | - ), |
|
| 222 | - 'NZ' => array( |
|
| 223 | - 'sortcode' => array( |
|
| 224 | - 'label' => __( 'Bank code', 'invoicing' ), |
|
| 225 | - ), |
|
| 226 | - ), |
|
| 227 | - 'SE' => array( |
|
| 228 | - 'sortcode' => array( |
|
| 229 | - 'label' => __( 'Bank code', 'invoicing' ), |
|
| 230 | - ), |
|
| 231 | - ), |
|
| 232 | - 'US' => array( |
|
| 233 | - 'sortcode' => array( |
|
| 234 | - 'label' => __( 'Routing number', 'invoicing' ), |
|
| 235 | - ), |
|
| 236 | - ), |
|
| 237 | - 'ZA' => array( |
|
| 238 | - 'sortcode' => array( |
|
| 239 | - 'label' => __( 'Branch code', 'invoicing' ), |
|
| 240 | - ), |
|
| 241 | - ), |
|
| 242 | - ) |
|
| 243 | - ); |
|
| 244 | - |
|
| 245 | - } |
|
| 246 | - |
|
| 247 | - return $this->locale; |
|
| 248 | - |
|
| 249 | - } |
|
| 250 | - |
|
| 251 | - /** |
|
| 252 | - * Filters the gateway settings. |
|
| 253 | - * |
|
| 254 | - * @param array $admin_settings |
|
| 255 | - */ |
|
| 256 | - public function admin_settings( $admin_settings ) { |
|
| 190 | + * Get country locale if localized. |
|
| 191 | + * |
|
| 192 | + * @return array |
|
| 193 | + */ |
|
| 194 | + public function get_country_locale() { |
|
| 195 | + |
|
| 196 | + if ( empty( $this->locale ) ) { |
|
| 197 | + |
|
| 198 | + // Locale information to be used - only those that are not 'Sort Code'. |
|
| 199 | + $this->locale = apply_filters( |
|
| 200 | + 'getpaid_get_bank_transfer_locale', |
|
| 201 | + array( |
|
| 202 | + 'AU' => array( |
|
| 203 | + 'sortcode' => array( |
|
| 204 | + 'label' => __( 'BSB', 'invoicing' ), |
|
| 205 | + ), |
|
| 206 | + ), |
|
| 207 | + 'CA' => array( |
|
| 208 | + 'sortcode' => array( |
|
| 209 | + 'label' => __( 'Bank transit number', 'invoicing' ), |
|
| 210 | + ), |
|
| 211 | + ), |
|
| 212 | + 'IN' => array( |
|
| 213 | + 'sortcode' => array( |
|
| 214 | + 'label' => __( 'IFSC', 'invoicing' ), |
|
| 215 | + ), |
|
| 216 | + ), |
|
| 217 | + 'IT' => array( |
|
| 218 | + 'sortcode' => array( |
|
| 219 | + 'label' => __( 'Branch sort', 'invoicing' ), |
|
| 220 | + ), |
|
| 221 | + ), |
|
| 222 | + 'NZ' => array( |
|
| 223 | + 'sortcode' => array( |
|
| 224 | + 'label' => __( 'Bank code', 'invoicing' ), |
|
| 225 | + ), |
|
| 226 | + ), |
|
| 227 | + 'SE' => array( |
|
| 228 | + 'sortcode' => array( |
|
| 229 | + 'label' => __( 'Bank code', 'invoicing' ), |
|
| 230 | + ), |
|
| 231 | + ), |
|
| 232 | + 'US' => array( |
|
| 233 | + 'sortcode' => array( |
|
| 234 | + 'label' => __( 'Routing number', 'invoicing' ), |
|
| 235 | + ), |
|
| 236 | + ), |
|
| 237 | + 'ZA' => array( |
|
| 238 | + 'sortcode' => array( |
|
| 239 | + 'label' => __( 'Branch code', 'invoicing' ), |
|
| 240 | + ), |
|
| 241 | + ), |
|
| 242 | + ) |
|
| 243 | + ); |
|
| 244 | + |
|
| 245 | + } |
|
| 246 | + |
|
| 247 | + return $this->locale; |
|
| 248 | + |
|
| 249 | + } |
|
| 250 | + |
|
| 251 | + /** |
|
| 252 | + * Filters the gateway settings. |
|
| 253 | + * |
|
| 254 | + * @param array $admin_settings |
|
| 255 | + */ |
|
| 256 | + public function admin_settings( $admin_settings ) { |
|
| 257 | 257 | |
| 258 | 258 | $admin_settings['bank_transfer_desc']['std'] = __( "Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing' ); |
| 259 | - $admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' ); |
|
| 259 | + $admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' ); |
|
| 260 | 260 | |
| 261 | - $locale = $this->get_country_locale(); |
|
| 261 | + $locale = $this->get_country_locale(); |
|
| 262 | 262 | |
| 263 | - // Get sortcode label in the $locale array and use appropriate one. |
|
| 264 | - $country = wpinv_default_billing_country(); |
|
| 265 | - $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
| 263 | + // Get sortcode label in the $locale array and use appropriate one. |
|
| 264 | + $country = wpinv_default_billing_country(); |
|
| 265 | + $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
| 266 | 266 | |
| 267 | - $admin_settings['bank_transfer_ac_name'] = array( |
|
| 267 | + $admin_settings['bank_transfer_ac_name'] = array( |
|
| 268 | 268 | 'type' => 'text', |
| 269 | 269 | 'id' => 'bank_transfer_ac_name', |
| 270 | 270 | 'name' => __( 'Account Name', 'invoicing' ), |
| 271 | - ); |
|
| 271 | + ); |
|
| 272 | 272 | |
| 273 | - $admin_settings['bank_transfer_ac_no'] = array( |
|
| 273 | + $admin_settings['bank_transfer_ac_no'] = array( |
|
| 274 | 274 | 'type' => 'text', |
| 275 | 275 | 'id' => 'bank_transfer_ac_no', |
| 276 | 276 | 'name' => __( 'Account Number', 'invoicing' ), |
| 277 | - ); |
|
| 277 | + ); |
|
| 278 | 278 | |
| 279 | - $admin_settings['bank_transfer_bank_name'] = array( |
|
| 279 | + $admin_settings['bank_transfer_bank_name'] = array( |
|
| 280 | 280 | 'type' => 'text', |
| 281 | 281 | 'id' => 'bank_transfer_bank_name', |
| 282 | 282 | 'name' => __( 'Bank Name', 'invoicing' ), |
| 283 | - ); |
|
| 283 | + ); |
|
| 284 | 284 | |
| 285 | - $admin_settings['bank_transfer_ifsc'] = array( |
|
| 285 | + $admin_settings['bank_transfer_ifsc'] = array( |
|
| 286 | 286 | 'type' => 'text', |
| 287 | 287 | 'id' => 'bank_transfer_ifsc', |
| 288 | 288 | 'name' => __( 'IFSC Code', 'invoicing' ), |
| 289 | - ); |
|
| 289 | + ); |
|
| 290 | 290 | |
| 291 | - $admin_settings['bank_transfer_iban'] = array( |
|
| 291 | + $admin_settings['bank_transfer_iban'] = array( |
|
| 292 | 292 | 'type' => 'text', |
| 293 | 293 | 'id' => 'bank_transfer_iban', |
| 294 | 294 | 'name' => __( 'IBAN', 'invoicing' ), |
| 295 | - ); |
|
| 295 | + ); |
|
| 296 | 296 | |
| 297 | - $admin_settings['bank_transfer_bic'] = array( |
|
| 297 | + $admin_settings['bank_transfer_bic'] = array( |
|
| 298 | 298 | 'type' => 'text', |
| 299 | 299 | 'id' => 'bank_transfer_bic', |
| 300 | 300 | 'name' => __( 'BIC/Swift Code', 'invoicing' ), |
| 301 | - ); |
|
| 301 | + ); |
|
| 302 | 302 | |
| 303 | - $admin_settings['bank_transfer_sort_code'] = array( |
|
| 304 | - 'type' => 'text', |
|
| 305 | - 'id' => 'bank_transfer_sort_code', |
|
| 306 | - 'name' => $sortcode, |
|
| 307 | - ); |
|
| 303 | + $admin_settings['bank_transfer_sort_code'] = array( |
|
| 304 | + 'type' => 'text', |
|
| 305 | + 'id' => 'bank_transfer_sort_code', |
|
| 306 | + 'name' => $sortcode, |
|
| 307 | + ); |
|
| 308 | 308 | |
| 309 | - $admin_settings['bank_transfer_info'] = array( |
|
| 309 | + $admin_settings['bank_transfer_info'] = array( |
|
| 310 | 310 | 'id' => 'bank_transfer_info', |
| 311 | 311 | 'name' => __( 'Instructions', 'invoicing' ), |
| 312 | 312 | 'desc' => __( 'Instructions that will be added to the thank you page and emails.', 'invoicing' ), |
@@ -316,17 +316,17 @@ discard block |
||
| 316 | 316 | 'rows' => 5 |
| 317 | 317 | ); |
| 318 | 318 | |
| 319 | - return $admin_settings; |
|
| 320 | - } |
|
| 319 | + return $admin_settings; |
|
| 320 | + } |
|
| 321 | 321 | |
| 322 | - /** |
|
| 323 | - * Processes invoice addons. |
|
| 324 | - * |
|
| 325 | - * @param WPInv_Invoice $invoice |
|
| 326 | - * @param GetPaid_Form_Item[] $items |
|
| 327 | - * @return WPInv_Invoice |
|
| 328 | - */ |
|
| 329 | - public function process_addons( $invoice, $items ) { |
|
| 322 | + /** |
|
| 323 | + * Processes invoice addons. |
|
| 324 | + * |
|
| 325 | + * @param WPInv_Invoice $invoice |
|
| 326 | + * @param GetPaid_Form_Item[] $items |
|
| 327 | + * @return WPInv_Invoice |
|
| 328 | + */ |
|
| 329 | + public function process_addons( $invoice, $items ) { |
|
| 330 | 330 | |
| 331 | 331 | foreach ( $items as $item ) { |
| 332 | 332 | $invoice->add_item( $item ); |
@@ -334,6 +334,6 @@ discard block |
||
| 334 | 334 | |
| 335 | 335 | $invoice->recalculate_total(); |
| 336 | 336 | $invoice->save(); |
| 337 | - } |
|
| 337 | + } |
|
| 338 | 338 | |
| 339 | 339 | } |