partners = empty($partners) ? $this->get_default_partners() : $partners; $this->css_variables = $this->merge_css_variables($css_variables); $this->filters = empty($filters) ? $this->get_default_filters() : $filters; } public static function enqueue_assets() { $style_handle = 'partner-discount-ui-style'; $script_handle = 'partner-discount-ui-script'; $style_file = plugin_dir_path(__FILE__) . 'partner-discount-ui.css'; $script_file = plugin_dir_path(__FILE__) . 'partner-discount-scripts.js'; $style_url = plugin_dir_url(__FILE__) . 'partner-discount-ui.css'; $script_url = plugin_dir_url(__FILE__) . 'partner-discount-scripts.js'; if (file_exists($style_file)) { wp_enqueue_style($style_handle, $style_url, [], filemtime($style_file)); } if (file_exists($script_file)) { wp_enqueue_script($script_handle, $script_url, [], filemtime($script_file), true); } } private function get_default_filters() { return []; } private function get_default_partners() { return [ [ 'name' => 'Partner name', 'desc' => 'Partner description', 'code' => 'Discount code', 'discount' => '0%', 'link' => 'https://example.com', 'image' => 'https://example.com/logo.svg', 'category' => '' ] ]; } private function get_default_css_variables() { return [ 'primary-color' => '#00b3b6', // Main accent color (buttons, links) 'primary-color-hover' => '#009da0', // Hover state for primary color 'black' => '#000', // Primary text color 'white' => '#fff', // Card backgrounds 'gray' => '#757575', // Secondary text color 'light-gray' => '#f5f5f7', // Section background, code background 'medium-gray' => '#79848e', // Unused (kept for compatibility) 'dark-gray' => '#333', // Headings, dark text 'border-gray' => '#979797', // Discount badge border 'text-gray' => '#585858', // Discount badge text 'hover-gray' => '#eaeaea', // Code hover background 'success-bg' => '#e6f7f7', // Copied code background 'btn-text-color' => '#fff', // Button text color 'btn-text-color-hover' => '#fff', // Hover state for button text color ]; } private function merge_css_variables($custom_variables) { $default_variables = $this->get_default_css_variables(); return array_merge($default_variables, $custom_variables); } private function generate_css_variables_style() { $css_rules = []; foreach ($this->css_variables as $key => $value) { $css_rules[] = "--{$key}: {$value}"; } return implode('; ', $css_rules); } private function is_percentage($input) { $input = trim($input); return preg_match('/^\d+(\.\d+)?%$/', $input) === 1; } public function render() { ob_start(); $partners = $this->partners; $css_variables_style = $this->generate_css_variables_style(); $filters = $this->filters; ?>

Partner Discounts

Exclusive discounts on premium WordPress tools and plugins for our users.

is_percentage($partner['discount'])):?>OFF

is_percentage($partner['discount'])):?>
Code:
Claim
render(); } }