$option['palettes'] ]); }); add_action('wp_ajax_blocksy_sync_custom_palettes', function () { if (! current_user_can('manage_options')) { wp_send_json_error(); } $body = json_decode(file_get_contents('php://input'), true); if (! isset($body['palettes'])) { wp_send_json_error(); } update_option('blocksy_custom_palettes', [ 'palettes' => $body['palettes'] ]); wp_send_json_success($body); }); } public function register_color_palettes() { $palettes = [ [ 'id' => 'palette-1', 'color1' => [ 'color' => '#2872fa', ], 'color2' => [ 'color' => '#1559ed', ], 'color3' => [ 'color' => '#3A4F66', ], 'color4' => [ 'color' => '#192a3d', ], 'color5' => [ 'color' => '#e1e8ed', ], 'color6' => [ 'color' => '#f2f5f7', ], 'color7' => [ 'color' => '#FAFBFC', ], 'color8' => [ 'color' => '#ffffff', ], ], [ 'id' => 'palette-2', 'color1' => [ 'color' => '#007f5f', ], 'color2' => [ 'color' => '#55a630', ], 'color3' => [ 'color' => '#365951', ], 'color4' => [ 'color' => '#192c27', ], 'color5' => [ 'color' => '#E6F0EE', ], 'color6' => [ 'color' => '#F2F7F6', ], 'color7' => [ 'color' => '#FBFCFC', ], 'color8' => [ 'color' => '#ffffff', ], ], [ 'id' => 'palette-3', 'color1' => [ 'color' => '#ff6310', ], 'color2' => [ 'color' => '#fd7c47', ], 'color3' => [ 'color' => '#687279', ], 'color4' => [ 'color' => '#111518', ], 'color5' => [ 'color' => '#E9EBEC', ], 'color6' => [ 'color' => '#F4F5F6', ], 'color7' => [ 'color' => '#ffffff', ], 'color8' => [ 'color' => '#ffffff', ], ], [ 'id' => 'palette-4', 'color1' => [ 'color' => '#a8977b', ], 'color2' => [ 'color' => '#7f715c', ], 'color3' => [ 'color' => '#3f4245', ], 'color4' => [ 'color' => '#111518', ], 'color5' => [ 'color' => '#eaeaec', ], 'color6' => [ 'color' => '#f4f4f5', ], 'color7' => [ 'color' => '#ffffff', ], 'color8' => [ 'color' => '#ffffff', ], ], [ 'id' => 'palette-5', 'color1' => [ 'color' => '#84a98c', ], 'color2' => [ 'color' => '#52796f', ], 'color3' => [ 'color' => '#cad2c5', ], 'color4' => [ 'color' => '#84a98c', ], 'color5' => [ 'color' => '#384b56', ], 'color6' => [ 'color' => '#212b31', ], 'color7' => [ 'color' => '#29363d', ], 'color8' => [ 'color' => '#314149', ], ], [ 'id' => 'palette-6', 'color1' => [ 'color' => '#7456f1', ], 'color2' => [ 'color' => '#5e3fde', ], 'color3' => [ 'color' => '#4d5d6d', ], 'color4' => [ 'color' => '#102136', ], 'color5' => [ 'color' => '#E7EBEE', ], 'color6' => [ 'color' => '#F3F5F7', ], 'color7' => [ 'color' => '#FBFBFC', ], 'color8' => [ 'color' => '#ffffff', ], ], [ 'id' => 'palette-7', 'color1' => [ 'color' => '#98c1d9', ], 'color2' => [ 'color' => '#E84855', ], 'color3' => [ 'color' => '#475671', ], 'color4' => [ 'color' => '#293241', ], 'color5' => [ 'color' => '#E7E9EF', ], 'color6' => [ 'color' => '#f3f4f7', ], 'color7' => [ 'color' => '#FBFBFC', ], 'color8' => [ 'color' => '#ffffff', ], ], [ 'id' => 'palette-8', 'color1' => [ 'color' => '#ffcd05', ], 'color2' => [ 'color' => '#fcb424', ], 'color3' => [ 'color' => '#504e4a', ], 'color4' => [ 'color' => '#0a0500', ], 'color5' => [ 'color' => '#edeff2', ], 'color6' => [ 'color' => '#f9fafb', ], 'color7' => [ 'color' => '#FDFDFD', ], 'color8' => [ 'color' => '#ffffff', ], ], [ 'id' => 'palette-9', 'color1' => [ 'color' => '#006466', ], 'color2' => [ 'color' => '#065A60', ], 'color3' => [ 'color' => '#7F8C9A', ], 'color4' => [ 'color' => '#ffffff', ], 'color5' => [ 'color' => '#1e2933', ], 'color6' => [ 'color' => '#0F141A', ], 'color7' => [ 'color' => '#141b22', ], 'color8' => [ 'color' => '#1B242C', ], ], [ 'id' => 'palette-10', 'color1' => [ 'color' => '#00509d', ], 'color2' => [ 'color' => '#003f88', ], 'color3' => [ 'color' => '#828487', ], 'color4' => [ 'color' => '#28292a', ], 'color5' => [ 'color' => '#e8ebed', ], 'color6' => [ 'color' => '#f4f5f6', ], 'color7' => [ 'color' => '#FBFBFC', ], 'color8' => [ 'color' => '#ffffff', ], ], [ 'id' => 'palette-11', 'color1' => [ 'color' => '#3eaf7c', ], 'color2' => [ 'color' => '#33a370', ], 'color3' => [ 'color' => '#415161', ], 'color4' => [ 'color' => '#2c3e50', ], 'color5' => [ 'color' => '#E2E7ED', ], 'color6' => [ 'color' => '#edeff2', ], 'color7' => [ 'color' => '#f8f9fb', ], 'color8' => [ 'color' => '#ffffff', ], ], [ 'id' => 'palette-12', 'color1' => [ 'color' => '#FB7258', ], 'color2' => [ 'color' => '#F74D67', ], 'color3' => [ 'color' => '#6e6d76', ], 'color4' => [ 'color' => '#0e0c1b', ], 'color5' => [ 'color' => '#DFDFE2', ], 'color6' => [ 'color' => '#F4F4F5', ], 'color7' => [ 'color' => '#FBFBFB', ], 'color8' => [ 'color' => '#ffffff', ], ], ]; return $palettes; } public function get_color_palette($args = []) { $args = wp_parse_args( $args, [ 'id' => 'colorPalette', 'default' => [ 'color1' => [ 'color' => '#2872fa', ], 'color2' => [ 'color' => '#1559ed', ], 'color3' => [ 'color' => '#3A4F66', ], 'color4' => [ 'color' => '#192a3d', ], 'color5' => [ 'color' => '#e1e8ed', ], 'color6' => [ 'color' => '#f2f5f7', ], 'color7' => [ 'color' => '#FAFBFC', ], 'color8' => [ 'color' => '#ffffff', ] ] ] ); $colorPalette = blocksy_get_theme_mod($args['id'], $args['default']); $result = []; foreach ($colorPalette as $key => $value) { if (strpos($key, 'color') === false) { continue; } $variableName = str_replace('color', 'theme-palette-color-', $key); if (isset($value['variable']) && ! empty($value['variable'])) { $variableName = $value['variable']; } if (! $value) { $value = $args['default'][$key]; } $title = blocksy_safe_sprintf( __('Color %s', 'blocksy'), str_replace('color', '', $key) ); if (isset($value['title'])) { $title = $value['title']; } $result[$key] = [ 'id' => $key, 'slug' => 'palette-color-' . str_replace('color', '', $key), 'color' => $value['color'], 'variable' => $variableName, 'title' => $title ]; } return $result; } }