Как все изображения сделать квадратными?

div {
  /* Блок обертки картинки */
  width: 20%;
  /* Тут ширина ваша, высота будет считаться на хаке ниже */
  position: relative;
  /* Это обязательно */

  /* Временные стили*/
  background-color: #eee;
  margin: 30px auto;

}

div:before {
  /* Хак формирования соотношения сторон для квадрата 1:1, исходя из ширины */
  content: "";
  display: block;
  padding-bottom: 100%;
}

img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  margin: auto;
  display: inline-block;
  width: auto;
  min-width: 1px;
  max-width: 100%;
  height: initial;
  min-height: 1px;
  max-height: 100%;
}

Добавить выбор количества в список товаров


// 1. Добавление новой колонки для количества товаров на складе перед столбцом "В наличии"
add_filter('manage_edit-product_columns', 'custom_product_columns');
function custom_product_columns($columns) {
    // Проверяем роль пользователя
    if (!current_user_can('admin_shop') && !current_user_can('administrator')) {
        return $columns; // Возвращаем исходные колонки, если роль не соответствует
    }
    
    // Создаем новый массив с колонками
    $reordered_columns = array();
    
    // Проходимся по всем существующим колонкам
    foreach ($columns as $key => $value) {
        // Перед добавлением колонки 'is_in_stock' (В наличии) добавляем нашу новую колонку
        if ($key == 'is_in_stock') {
            $reordered_columns['stock_quantity'] = __('Количество на складе', 'woocommerce');
        }

        $reordered_columns[$key] = $value;
    }

    return $reordered_columns;
}

// 2. Заполнение колонки данными
add_action('manage_product_posts_custom_column', 'custom_product_column_content', 10, 2);
function custom_product_column_content($column, $post_id) {
    // Проверяем роль пользователя
    if (!current_user_can('admin_shop') && !current_user_can('administrator')) {
        return; // Прекращаем выполнение, если роль не соответствует
    }

    if ($column === 'stock_quantity') {
        $stock = get_post_meta($post_id, '_stock', true);
        echo '
'; echo ''; echo '
'; } } // 3. AJAX обработка изменения количества товаров add_action('wp_ajax_update_stock_quantity', 'update_stock_quantity'); function update_stock_quantity() { // Проверяем роль пользователя if (!current_user_can('admin_shop') && !current_user_can('administrator')) { wp_send_json_error(); // Прекращаем выполнение, если роль не соответствует return; } if (isset($_POST['product_id']) && isset($_POST['quantity'])) { $product_id = intval($_POST['product_id']); $quantity = intval($_POST['quantity']); update_post_meta($product_id, '_stock', $quantity); wp_send_json_success(); } else { wp_send_json_error(); } } // 4. Скрипт для обработки изменения количества товаров в колонке add_action('admin_footer', 'stock_quantity_editable_script'); function stock_quantity_editable_script() { // Проверяем роль пользователя if (!current_user_can('admin_shop') && !current_user_can('administrator')) { return; // Прекращаем выполнение, если роль не соответствует } global $pagenow; if ($pagenow !== 'edit.php' || get_post_type() !== 'product') { return; } ?>

Несколько популярных онлайн-редакторов кода

Вот несколько популярных онлайн-редакторов кода, аналогичных JSFiddle, которые позволяют писать, тестировать и делиться HTML, CSS и JavaScript:

  1. CodePen (https://codepen.io/)
    Один из самых популярных онлайн-редакторов. Позволяет создавать проекты, делиться ими и даже находить вдохновение среди работ других пользователей.
  2. JSBin (https://jsbin.com/)
    Легкий и простой инструмент для быстрого тестирования и отладки кода в браузере. Поддерживает совместную работу и интеграцию с GitHub.
  3. JSFiddle (https://jsfiddle.net/)
    Сам JSFiddle, если вам нужно быстро протестировать фрагменты HTML, CSS и JavaScript, а также делиться кодом с другими.
  4. CodeSandbox (https://codesandbox.io/)
    Мощный онлайн-редактор, предназначенный для разработки приложений на JavaScript и TypeScript, поддерживает React, Vue, Angular и другие фреймворки.
  5. Repl.it (https://replit.com/)
    Универсальная платформа для кодирования, которая поддерживает множество языков программирования. Хорошо подходит для совместной работы и обучения.
  6. Codeply (https://www.codeply.com/)
    Фокусируется на работе с фронтенд-фреймворками, такими как Bootstrap, Foundation, Materialize и др.

Эти инструменты позволяют вам работать с кодом прямо в браузере и видеть результаты в реальном времени. Вы также можете делиться своими проектами с другими пользователями.

Замена футера

Имеем несколько вариантов замены и удаления. Для замены используем код в functions.php:
Здесь мы удалим часть футера

function replace_opstore_footer_credit() {
    remove_action('opstore_footer', 'opstore_bottom_footer', 10);

    add_action('opstore_footer', 'custom_footer_credit', 10);
}

function custom_footer_credit() {
    ?>
    
    
Здесь замена подписи
function modify_opstore_footer_credit($content) {
    // Ищем стандартную подпись по содержимому
     $pattern = '/Copyright 2024 - Opstore Theme By WPoperation<\/a>/';

    // Формируем новую подпись
    $replacement = '© 2024 Ваше Имя или Название Компании. Все права защищены.';

    // Заменяем стандартную подпись на новую
    $content = preg_replace($pattern, $replacement, $content);

    return $content;
}

function start_output_buffer() {
    ob_start('modify_opstore_footer_credit');
}

function end_output_buffer() {
    ob_end_flush();
}

add_action('template_redirect', 'start_output_buffer');
add_action('shutdown', 'end_output_buffer');

или не зная разметки

function modify_opstore_footer_credit($content) {
    // Убираем стандартную подпись
    $content = preg_replace('/Opstore Theme By .*?<\/a>/', '', $content);
    
    // Добавляем свою подпись
    $new_credit = '

© 2024 Ваше Имя или Название Компании. Все права защищены.

'; // Вставляем новую подпись вместо старой return $content . $new_credit; } function start_output_buffer() { ob_start('modify_opstore_footer_credit'); } function end_output_buffer() { ob_end_flush(); } add_action('template_redirect', 'start_output_buffer'); add_action('shutdown', 'end_output_buffer');

или по классам

function modify_opstore_footer_credit($content) {
    // Ищем стандартную подпись
    $pattern = '/
.*?<\/div>/s'; // Формируем новую подпись $replacement = '
© 2024 Ваше Имя или Название Компании. Все права защищены.
'; // Заменяем старую подпись на новую $content = preg_replace($pattern, $replacement, $content); return $content; } function start_output_buffer() { ob_start('modify_opstore_footer_credit'); } function end_output_buffer() { ob_end_flush(); } add_action('template_redirect', 'start_output_buffer'); add_action('shutdown', 'end_output_buffer');

Import Export

WP All Import
Автор: Soflyy
Ссылка: https:// wordress.org/plugins/wp-all-import/

WooCommerce Product CSV Import Suite
Автор: WooCommerce
Ссылка: https:// woocommerce.com/products/product-csv-import-suite/

Product Import Export for WooCommerce
Автор: WebToffee
Ссылка: https:// wordpress.org/plugins/product-import-export-for-woo/

Woo Import Export
Автор: VJInfotech
Ссылка: https:// codecanyon.net/item/woo-import-export/13694764

CTX Feed – WooCommerce Product Feed Generator
Автор: WebAppick
Ссылка: https:// wordpress.org/plugins/webappick-product-feed-for-woocommerce/

WooCommerce Add-On for WP All Import
Автор: Soflyy
Ссылка: https:// www.wpallimport.com/woocommerce-product-import/

Auto Upload Images
Автор: Ali Irani
Ссылка: https:// wordpress.org/plugins/auto-upload-images/