Как создать плагин для управления плагинами в мультисайте?

Здравствуйте. Необходимо получить возможность активации и деактивации плагинов, на сайтах в поддоменах мультисети, из меню Мои сайты -> Управление сетью -> Плагины. Возможно ли это реализовать? Если нет, то почему? 

Фильтр записей на wordpress

Есть разметка под фильтр записей по категориям. Все бы хорошо, но он сверстан дивами, собственно, как можно реализовать передачу данных о постах на сервер для обработки без использования form и input? Подойдут ли data- атрибуты для этого дела? Или все же переделывать на checkbox?есть вот такой код “Попытка затолкнуть данные о категории в data”

<?php
<div class="center-filter__categories">
    <?php if($terms = get_terms(('category'))) { ?>
        <?php foreach($terms as $term) : ?>
            <?php echo "<div class='center-filter__categories-item center-filter__item' data-id='".$term->term_id."'>".$term->name."</div>"; ?>
        <?php endforeach; ?>
    <?php } ?>
</div>
?>

не понимаю как обработать data

cherry-wizard

Подскажите кто знает выдает ошибку, не могу установить((

Сортировка изображений

Доброго времени суток форумчане сделал плагин на основе коде найденного в просторах тернета который дает возможность добавлять в записи дополнительные фото, появилась необходимость сортировать картинки в заданном порядке для этого добавил переменную $gallery_data[‘image_count’] но как сортировать по ней не могу придумать, может подскажете в какую сторону копать

<?php
add_action( 'admin_init', 'add_post_gallery_so_14445904' );
add_action( 'add_meta_boxes_page', 'add_page_gallery_so_14445904' );
add_action( 'admin_head-post.php', 'print_scripts_so_14445904' );
add_action( 'admin_head-post-new.php', 'print_scripts_so_14445904' );
add_action( 'save_post', 'update_post_gallery_so_14445904', 10, 2 );



/**
 * Add custom Meta Box
 */

// Add meta box to custom posts 
function add_post_gallery_so_14445904() 
{
         
    add_meta_box(
        'post_gallery',
        'Галерея для Tixon',
        'post_gallery_options_so_14445904',
         'post',
        'normal',
        'core'
    );
}



/**
 * Print the Meta Box content
 */
function post_gallery_options_so_14445904() 
{
    global $post;
    $gallery_data = get_post_meta( $post->ID, 'gallery_data', true );

    // Use nonce for verification
    wp_nonce_field( plugin_basename( __FILE__ ), 'noncename_so_14445904' );

    ?>
<?php echo 'Количество элементов > ', count( $gallery_data['image_url'] );?>
    
    <div id="dynamic_form">

        <div id="field_wrap">
        <?php 

        if ( isset( $gallery_data['image_url'] ) ) 
        {
            for( $i = 0; $i < count( $gallery_data['image_url'] ); $i++ ) 
            {
         
            ?>

            <div class="field_row">

              <div class="field_left">
                <div class="form_field">
                  <!--<label>Image URL</label>-->
                  <input type="hidden"
                         class="meta_image_url"
                         name="gallery[image_url][]"
                         value="<?php esc_html_e( $gallery_data['image_url'][$i] ); ?>"
                  />
                  <input type="hidden"
                         class="meta_image_id"
                         name="gallery[image_id][]"
                         value="<?php esc_html_e( $gallery_data['image_id'][$i] ); ?>"
                  />
                </div>
                <div class="form_field" style="margin-bottom: 20px">
                  <label>Описание изображения</label>
                  <textarea
                         class="meta_image_desc"
                         name="gallery[image_desc][]"
                         rows="1"
                         style="width: 100%"><?php esc_html_e( $gallery_data['image_desc'][$i] ); ?></textarea>
                </div>
                       <div class="form_field" style="margin-bottom: 20px">
                  <label>Ссылка на Youtube видео</label>
                  <textarea
                         class="meta_image_desc"
                         name="gallery[href_url][]"
                         rows="1"
                         style="width: 100%"><?php esc_html_e( $gallery_data['href_url'][$i] ); ?></textarea>
                </div>

                <input class="button" type="button" value="Выбрать изображение" onclick="add_image(this)" />&nbsp;&nbsp;&nbsp;
                <input class="button" type="button" value="Удалить" onclick="remove_field(this)" />
              </div>

              <div class="field_right image_wrap">
                <img src="<?php esc_html_e( $gallery_data['image_url'][$i] ); ?>" />
          <input type="text" size="10" class="meta_image_count" name="gallery[image_count][]" value="<?php esc_html_e( $gallery_data['image_count'][$i] );  ?>">
              </div>
              <div class="clear" /></div> 
            </div>
            <?php
            } // endif
        } // endforeach
        ?>
        </div>

        <div style="display:none" id="master-row">
        <div class="field_row">
            <div class="field_left">
                <div class="form_field">
                    <!--<label>Image URL</label>-->
                    <input class="meta_image_url" value=""  name="gallery[image_url][]" />
                    <input class="meta_image_id" value=""  name="gallery[image_id][]" />
                </div>
                <div class="form_field" style="margin-bottom: 20px">
                    <label>Описание изображения</label>
                    <textarea class="meta_image_desc" name="gallery[image_desc][]" rows="3" style="width: 100%"></textarea>
                </div>
                    <div class="form_field" style="margin-bottom: 20px">
                    <label>Ссылка на Youtube видео</label>
                    <textarea class="meta_image_href_url" name="gallery[href_url][]" rows="3" style="width: 100%"></textarea>
                </div>
                <input type="button" class="button" value="Выбрать изображение" onclick="add_image(this)" />&nbsp;&nbsp;&nbsp;
                <input class="button" type="button" value="Удалить" onclick="remove_field(this)" />
            </div>
            <div class="field_right image_wrap">

            <input type="text" size="10" class="meta_image_count" name="gallery[image_count][]" value="">
            </div>
            <div class="clear"></div>
        </div>
        </div>

        <div id="add_field_row">
          <input class="button" type="button" value="Добавить доплнительное поле" onclick="add_field_row();" />
        </div>
        <?php if ( 'trend' == get_post_type( $post->ID ) ) { ?>
        <p style="color: #a00;">Make sure the number if images you add is a <b>multiple of 5</b>.</p>
        <?php } ?>
    </div>
    <?php
}

/**
 * Print styles and scripts
 */
function print_scripts_so_14445904()
{
    // Check for correct post_type
     global $post;
    if( 'post' != $post->post_type )
        return;
    ?>  
    <style type="text/css">
      .field_left {
        float:left;
        width: 85%;
        padding-right: 20px;
        box-sizing:border-box;  
      }
      .field_right {
        float:left;
        width: 15%;
      }
      .image_wrap img {
          max-width: 100%;
          max-height: 200px;
      }
      #dynamic_form input[type=text] {
        width:100%;
      }
      #dynamic_form .field_row {
        border:1px solid #cecece;
        margin-bottom:10px;
        padding:10px;
      }
      #dynamic_form label {
        display: block;
        margin-bottom: 5px;
      }
    </style>

    <script type="text/javascript">
        function add_image(obj) {

            var parent=jQuery(obj).parent().parent('div.field_row');
            var inputField = jQuery(parent).find("input.meta_image_url");
            var inputFieldID = jQuery(parent).find("input.meta_image_id");
            var fileFrame = wp.media.frames.file_frame = wp.media({
                multiple: false
            });
            fileFrame.on('select', function() {
                var selection = fileFrame.state().get('selection').first().toJSON();
                inputField.val(selection.url);
                inputFieldID.val(selection.id);
                jQuery(parent)
                .find("div.image_wrap")
                .html('<img src="'+selection.url+'" />');
            });
            fileFrame.open();
        //});
        };

        function remove_field(obj) {
            var parent=jQuery(obj).parent().parent();
            parent.remove();
        }

         function add_field_row() {
            var row = jQuery('#master-row').html();
            jQuery(row).appendTo('#field_wrap');
        }
    </script>
    <?php
}

/**
 * Save post action, process fields
 */
function update_post_gallery_so_14445904( $post_id, $post_object ) 
{
    // Doing revision, exit earlier **can be removed**
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )  
        return;

    // Doing revision, exit earlier
    if ( 'revision' == $post_object->post_type )
        return;

    // Verify authenticity
    if ( !wp_verify_nonce( $_POST['noncename_so_14445904'], plugin_basename( __FILE__ ) ) )
        return;

  if ( 'post' != $_POST['post_type'] ) 
        return;

    if ( $_POST['gallery'] ) 
    {
        // Build array for saving post meta
        $gallery_data = array();
        for ($i = 0; $i < count( $_POST['gallery']['image_url'] ); $i++ ) 
        {
            if ( '' != $_POST['gallery']['image_url'][ $i ] ) 
            {
                $gallery_data['image_url'][]  = $_POST['gallery']['image_url'][ $i ];
                $gallery_data['image_id'][]  = $_POST['gallery']['image_id'][ $i ];
                $gallery_data['image_desc'][] = $_POST['gallery']['image_desc'][ $i ];
                  $gallery_data['href_url'][] = $_POST['gallery']['href_url'][ $i ];
                    $gallery_data['image_count'][] = $_POST['gallery']['image_count'][ $i ];
            }
        }

        if ( $gallery_data ) 
            update_post_meta( $post_id, 'gallery_data', $gallery_data );
        else 
            delete_post_meta( $post_id, 'gallery_data' );
    } 
    // Nothing received, all fields are empty, delete option
    else 
    {
        delete_post_meta( $post_id, 'gallery_data' );
    }
}
?>

Оптимизация шаблона под Google PageSpeed

Добрый день. мы компании ArtVolkov. Мы в поиске разработчика, который оптимизирует работу шаблона под Google PageSpeed (чтобы все страницы были в зеленой зоне) Шаблон: https://switcher.leafthemes.com/?product=hometown.Исходники у нас есть, для работы сможем предоставить.Если Вам интересно, нам нужно понимать точные сроки, стоимость за выполнение данной работы (всей) и...

Удалить, добавить пост не заходя в админку

Здравствуйте!
Вопрос.
1. Есть список названий постов. Возле каждого названия есть кнопка ”

Удалить”. При клике по кнопке соответствующий пост удаляется без захода в админку, а сразу (пользователь зарегистрированный);
2. При нажатии на кнопку, которая находится на фронт  енде, выпадает поп ап, в котором пользователь указывает название статьи и может при желании еще загрузить pdf файл. При нажатии на кнопку submit  этого попап, на сайте создается запись с указанным названием, а загруженный файл загружается в медиа библиотеку. После этих двух действий в содержимое вновь созданной записи вставляется шорт код в котором используется ссылка на медиа файл PDF, который загрузился в предыдущем шаге.

Подскажите в общих чертах как можно реализовать такой функционал на бекенд.

Вакансии / Developers

ищу исполнителя для доработок по сайту

вот краткий перечень: - помочь разобраться в кешировании шаблона, пытаюсь править верстку и ничего не изменяется, кеш удаляю и перекомпилирую scss файлы — не помогает, то же самое с js файлами -сделать доработки в интернет магазине (woocommerce), для разных категорий настроить вывод товаров...

Размещаете ли рекламу?

Здравствуйте! Вы размещаете рекламу?

Необходимо доработать функцию плагина

WordPress. Доработка функции плагина Learndash.Здравствуйте. Необходимо доработать плагин Learndash, чтобы в файл экспорта статистики, подтягивались дополнительные поля из профиля пользователей, созданных сторонним плагином.

Публикация через xmlrps

Всем доброго времени суток. У меня возник один вопрос, решение на который, я так и не смог найти в сети. Быть может кто то знает и сможет помочь здесь?)Суть вопроса:У вордпрес имеется скрипт для удаленной публикации записей. Но как эта публикация происходит? Как сделать запрос с содержимым (текстом, фото, рубрикой) что бы данный скрипт его обработал и опубликовал?Сторонние программы, такие как тексткит при помощи xmlrps свободно публикуют. Но есть ли возможность, сделать веб-страницу, чрез которую будет идти удаленная публикация на сайт? Или быть может в стандарте вп уже есть похожий инструмент?В общем как то так… Буду очень благодарен за помощь.

Мультиязычный сайт с плагином Elementor

Здравствуйте, возникла такая проблема: нужно сделать мультиязычный сайт, но популярные плагины не устанавливаются, либо работают некорректно. Машинный перевод не устраивает, нужен либо чисто ручной, либо машинный с возможностью редактировать. Плюс весь сайт создавался на Elementor, что тоже создает определенные неудобства. Возможно, кто-то сталкивался с подобной проблемой и уже знает, как она решается. В любом случае, заранее спасибо за ответ. 

Нужна помощь с поиском плагина

Мне нужн плагин, который поможет мне наложить кнопка поверх изображения, чтобы кнопка появлялась при наведении. (Я хочу сделать на этой кнопке контактную форму)

Не переводится плагин AnsPress, как решить проблему?

Здравствуйте, очень нужна ваша помощь с переводом плагина. Для проверки и редактирования перевода использовался плагин «Loco Translate».Но по каким-то непонятным причинам не переводятся элементы скриншота. Плагин не показывает, что есть не переведённые строки. Помогите, пожалуйста. 

Как сделать поле «Описание» не обязательным в AnsPress?

Здравствуйте, очень нужна ваша помощь с полем «Описание» вопроса. Может вы знаете, как сделать поле «Описание» в форме задания вопроса не обязательным. Нужно что бы только заголовок был обязательным. Спасибо! 

Маю проблему

Привіт. Маю проблему з категоріями товарів в WooCommerce. Маю головну сторінку і сторінку магазину. На головній сторінці є категорії – стандартний лінк, якщо виберу категорію якусь, то буде https://www.kazka-lviv.com.ua/product-category/дитячий-транспорт/ і я використовую wooBewoo Filter і тепер, якщо у фільтрі виберу якусь другу категорію, то лінк зміниться на https://www.kazka-lviv.com.ua/product-category/дитячий-транспорт/?filter_cat_2=3098. І в результаті буде нуль товарів в гріді, оскільки воно в дитячому транспорті шукає другу категорію. А якщо одразу в магазині фільтрувати не переходячи по лінку на якусь категорію, то все працює супер. Для прикладу ось так https://www.kazka-lviv.com.ua/shop/?filter_cat_2=3098 тоді я переключаюся між любими категоріями без проблем. Можете допомогти з даним питанням. Я так розумію лінк на категорію треба змінити, але поки не можу зрозуміти як це скомпонувати

Распределение заказов по менеджерам

Всем привет! Можно ли с помощью wocoomerce добавить раздел – заказы, которые будут видны только менеджерам сайта, так же эти заказы можно было взять на себя 

Калькулятор слайдер

Всем привет! Такой вопрос, нужно на сайте сделать калькулятор как на скрине, но не один из готовых плагинов не дает добавлять в корзину, возможно ли как то сделать калькулятор с оплатой другими способами?

Сайт, где выставить sidebar id, WordPress

Добрый день, имею сайт abso-lute.ru, при выставлении в движке своей старой темы, (нужной) дебуг говорит чтоб проблем с сайдбаром. Нужно выставить id сайдбара а вот где его выставить незнаю, помогите в беде.

WooComerce

Уважаемые разработчики, помогите, пожалуйста, решить проблему. Поставил woocommerce, и мне, вместо кнопки “в корзину”, нужно, чтобы шел редирект на внешнюю ссылку. Хочу перенаправить на https://www.labirint.ru/books/191611/ .Причем цифры – это артикул товара. И мне хотелось бы, чтобы я указывал артикул только при создании товара, а в ссылку он автоматически вставлялся и происходил редирект при нажатии кнопки “в корзину”

woocomerce+dokan инструкция / курс

Приветствую, требуется создать доску объявлений (с возможностью самими посетителями оставлять объявления) для совсем не большого города. Похожий проект реализовывал на joomla+dj classifieds, но в данной ситуации требуется на вп. Вроде woocomerce+dokan под это идеально подходит, но нигде не нашел подробной инструкции, на английском инфы море, а на русском нема, к сожалению. Возможно есть подробная инструкция/курс? Спасибо

Anonymous
Отправить
Ответ на: