Проблема с добавлением настраиваемого динамического цвета в WYSIWIG - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь добавить переменную в цветовую палитру, с кодом ниже.Лучшие 2 цвета работают, но мой третий цвет не добавляется, как вы можете видеть из моего кода;эхо-сигналы будут отображать правильный цвет из CMS, но как только они попадут в функцию, эта переменная не работает.

// Get current user identification
$current_user = wp_get_current_user();
$current_role = $current_user->roles[0];


// Loop through ACF repeater in the options
if( have_rows('group_colour', 'options') ):
    while ( have_rows('group_colour','options') ) : the_row();

        // Set the selected user role and the colour
        $colourrole = get_sub_field('user_role');
        $colourvalue = get_sub_field('role_colour');

            // If options user role matches the logged in user, get the colour and remove the #
            if ($current_role == $colourrole){
                $colour_no_hash = str_replace('#', '', $colourvalue);
                echo $colour_no_hash;



                // Customize the TinyMCE Color Palette. Attempting to add a colour for 'Custom Login'. Other 2 colours work.
                function wptb_tinymce_options($options) {

                    $custom_colours =  '"000000", "Black",
                                        "00AC9F", "Custom Teal",
                                        "' . $colour_no_hash . '", "Custom Login"';
                    $options['textcolor_map'] = '['.$custom_colours.']';
                    return $options;
                }
                add_filter('tiny_mce_before_init', 'wptb_tinymce_options');

            }

    endwhile;
else :
endif;

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 18 октября 2018

Я могу ошибаться, но я считаю, что ваша проблема связана с переменными областями.

Вы объявляете $colour_no_hash вне функции, и функция не может получить к ней доступ.Вы можете наследовать переменную в функции с помощью use:

$colour_no_hash = str_replace('#', '', $colourvalue);
echo $colour_no_hash;

// Customize the TinyMCE Color Palette. Attempting to add a colour for 'Custom Login'. Other 2 colours work.
wptb_tinymce_options = function ($options) use ($colour_no_hash) {

    $custom_colours =  '"000000", "Black",
                        "00AC9F", "Custom Teal",
                        "' . $colour_no_hash . '", "Custom Login"';
    $options['textcolor_map'] = '['.$custom_colours.']';
    return $options;
};

РЕДАКТИРОВАТЬ Изменил вышеприведенную анонимную функцию

Источник: PHP Docs

...