Спасибо за помощь, в общем я пофиксил все как смог, бюрократы WordPress съели.
Да если будете им что-то отправлять то вас могут ждать вот такие предъявы со стороны команды разработчиков и кураторов плагинов их репозитория:
## Tested Up To Value is Out of Date, Invalid, or Missing
The tested up to value in your plugin is not set to the current version of WordPress. This means your plugin will not show up in searches, as we require plugins to be compatible and documented as tested up to the most recent version of WordPress.
В целом при любых раскладах пишите в readme.txt что ваш плагин протестирован с последней текущей версией WordPress, если напишите хоть на пункт ниже будет отворот, поворот.
## Variables and options must be escaped when echo'd
Much related to sanitizing everything, all variables that are echoed need to be escaped when they're echoed, so it can't hijack users or (worse) admin screens. There are many esc_*() functions you can use to make sure you don't show people the wrong data, as well as some that will allow you to echo HTML safely.
Короче, почти весь вывод из подозрительных переменных или просто все если получится обрамить функцией esc_html, типо связано с возможными вопросами уязвимости а-ля XSS vulnerability, и попадании на вывод чет-то там кода html который типо как не желателен, я сам до конца не понял где это делать, а где нет, я заделал все что смог :)
## Generic function/class/define/namespace names
A good way to do this is with a prefix. For example, if your plugin is called "Easy Custom Post Types" then you could use names like these:
function ecpt_save_post()
define( ‘ECPT_LICENSE’, true );
class ECPT_Admin{}
namespace EasyCustomPostTypes;
Don't try to use two (2) or three (3) letter prefixes anymore. We host nearly 100-thousand plugins on WordPress.org alone. There are tens of thousands more outside our servers. Believe us, you’re going to run into conflicts.
Короче название ваших функций должно иметь обязательно префиксы из а-ля 4 символов или может быть можно использовать уникальные пространство имен, т.к. у меня две с половины функции я использовал префиксы перед названиями функций в 4 буковки. Связано это как я понял с тем что у них чет там миллион плагинов и могут быть конфликты в названиях или типа того.
Ну и да мой плагин приняли, как это не странно с моим не умением программирования и криворукостью, зовите меня теперь просто великий Архитектор и разработчик программного обеспечения Димитрий первый :-)
да причем тут html код?) они пишут про "переменные"... и выше обращали внимание.
искейпить нужно php переменные
html по идее ж можно выводить без echo
И никто не поймёт, не зная, какой код нужно вывести и как он формируется.
Кто-нибудь кто знает английский, скажите мне в двух словах что они от меня хотят.
Вы мне, наверное, не поверите, но оказывается помимо этого числа в add_menu_page, влияет на то где будет пункт меню циферка в add_action:
add_action('admin_menu', 'moe_super_menu', 20);
Это типа некий приоритет выполнения функции:
$priority(число)Приоритет выполнения функции. Если на этот же хук "прицеплены" еще функции, то приоритет будет решать последовательность их выполнения. Меньше число - раньше выполняется, т.е. 10 будет выполняться раньше чем 20.По умолчанию: 10
Короче я поставил побольше чтобы было попозже и магическим способом элемент меню сдвинулся в самый конец, не знаю, как это работает и почему, но вот так хотите верьте хотите нет.
Забавно что в файле sudoers пользовательские привилегии что у root, что у членов группы sudo одинаковые:
# User privilege specificationroot ALL=(ALL:ALL) ALL# Allow members of group sudo to execute any command%sudo ALL=(ALL:ALL) ALL
Что как бы намекает на схожесть в уровне доступа и привилегий, но я могу ошибаться. Да и это все не важно, т.к. как я понял достаточно похитить пароль от моего “Простого пользователя принадлежащего sudo” и можно делать все что угодно, и никакое судо и никакое разделение привелегий и рут не нужен.
Отсюда вывод, :-), нужно ставить хороший и устойчевый пароль для обычного sudo пользователя.