Задать вопрос
  • Как указать категорию в цикле вывода произвольных записей?

    а какая разница, для Wordpress товар это тоже произвольная запись

    Просто вместо 'product_cat' ставите свой тип таксономии
  • Макрос для очистки пустых строк?

    Уважаемый Rphoenix,
    Если Вы хотите что бы за Вас сделали, то Вам надо обращаться на фриланс

    Если вы далеки от написания макросов, но хотите разобраться, то Вам надо открыть любой учебник
    и начинать его изучать. Самое простое запустить запись макроса, выполнить некоторые действия и посмотреть что для Вас написал сам Excel.

    Если Вам нужна помощь в коде, то покажите участок кода в котором у Вас что то не выходит и Вам помогут.
    Если Вам нужна помощь в постороении алгоритма, то предложите свой и укажите что не выходит.
  • Загрузка картинок из google drive. Какой правильный путь?

    pton
    @pton Автор вопроса
    Спасибо большое за ответ
    Обязательно почитаю про Google Cloud Storage
    Задачу решили иначе.
    Т.к. после обсуждения с заказчиком выяснилось, что эту процедуру надо будет выполнять раз в полгода, то было принято решение отказаться от программного доступа и написан плагин, который подтягивает картинки из определенной папки на сервере. Мне не составит труда, раз в полгода, закинуть несколько архивов с фотками на сервер. Ну а если задача участится, то будем рассматривать варианты.
  • Загрузка файлов в Wordpress. Как реализовать?

    Александр Соболев, Спасибо за код, очень интересно, обязательно попробую
    Неизвестна мне только функция "get_estate_photos", но я так понимаю это Ваша, для вывода уже имеющихся подключенных фото
  • Как скачать файл на сайте wordpress через метод post?

    //1 - получить id вложения и локальный путь к файлу
    $atach_id = get_post_meta(get_the_ID(), 'test_file', true);  // надеюсь там просто число а не массив
    $local_path = get_post_meta($atach_id, '_wp_attached_file', true);
    
    //2 - получить каталог вложений
    $upload_dir = wp_upload_dir();
    $basedir = $upload_dir['basedir'];
    
    //3 - собрать путь к вложению
    $fn = $basedir . '/' . $local_path;
    
    ...
    // отправляем в поток
    readfile($fn);


    проверьте что получается в каждой переменной
    зайдите в базу данных и посмотрите содержимое полей

    - Открывайте исходные коды других плагинов и изучайте каждую функцию.
    - Изучите основы работы WordPress, как работают хуки.
    Вот отличный ресурс на русском.

    Успехов
    С Ув. Анатолий
  • Как скачать файл на сайте wordpress через метод post?

    Уважаемый zeni1agent,
    Я не совсем понимаю, какой файл из базы вы хотите скачать. База это набор таблиц, т.е. строки и столбцы, где у Вас там файл?
    Если у Вас в базе в метаполе 'test_file' для поста get_the_ID() храниться содержимое этого файла, то так его и отправляйте в поток
    //readfile($fn);
    echo get_post_meta(get_the_ID(), 'test_file', true);

    Если, же там хранится путь к файлу, то
    readfile( get_post_meta(get_the_ID(), 'test_file', true));


    PS - Закрывайте этот вопрос, это тема другого вопроса
  • Как скачать файл на сайте wordpress через метод post?

    потому, что Вы в переменную $fn прописали URL, а функция readfile ожидает локальный путь к файлу
  • Как скачать файл на сайте wordpress через метод post?

    Я так понимаю Вы получили ответ на этот вопрос
    Отмечайте успешное решение и закрывайте вопрос
  • Как скачать файл на сайте wordpress через метод post?

    вместо ReadFile выводите все, что вам нужно, любой поток
  • Современный табличный редактор, он существует?

    Андрей, По сути получается Вам нужна выгрузка данных в csv и синхронизация с GIT. И Excel (VBA) с этим тоже прекрасно справится. И кода не много потребуется, т.к. все данные у Вас текстовые
  • Как скачать файл на сайте wordpress через метод post?

    Это моя ошибка
    Команда DIR с двумя подчеркиваниями спереди и сзади
    поправьте и все получится
  • Как скачать файл на сайте wordpress через метод post?

    zeni1agent,
    Скорее всего надо проверить переменную $_SERVER['REQUEST_URI'] и подправить сравнение

    в 20й строке попробуйте
    if ($_SERVER['REQUEST_URI']=='/wor/downloads/result.csv')
  • Как скачать файл на сайте wordpress через метод post?

    zeni1agent,
    Вот пример. Разбирайте.
    Плагин загрузки файла по ссылке
    <?php
    /**
     *
     *
     * Plugin Name: Скачивание файла по ссылке
     * Plugin URI:
     * Description:
     * Author: Анатолий Пычев
     * Version: 1.0.2
     * Author URI:
     */
    
    // код плагина
    
    
    add_action('admin_menu', 'pchv_ew_add_admin_pages');
    add_action('template_redirect','pchv_ew_template_redirect');
    
    function pchv_ew_template_redirect() {
      if ($_SERVER['REQUEST_URI']=='/downloads/result.csv') {
    
    	$fn = _DIR_ . '/tocsv.csv'; // Получаум опцию
    
    	header("Content-type: application/x-msdownload",true,200);
        header("Content-Disposition: attachment; filename=result".date("_d.m.y_H:i:s").".csv");
        header("Pragma: no-cache");
        header("Expires: 0");
    	readfile($fn);
        exit();
      }
    }
    
    function pchv_ew_add_admin_pages(){
    	// Добавляем новую страницу настроек
    	$hook_suffix = add_options_page('Заголовок страницы', 'Загрузка Файлов', 8, 'pchv_upload_file', 'pchv_options_page');
    }
    
    function pchv_options_page(){
    
    	echo "<h2>Загрузка файлов по ссылке</h2>";
    	echo "<p>Автор плагина Анатолий Пычев (email: tpychev@ukr.net, sqype: pychevhome)</p>";
    
    
    	// Создаем фронтенд блока страницы настроек
    	$df = home_url('downloads/result.csv');
    	?></br><a  href ="<?php echo $df ?>" id="ew-getresult" >скачать файл результатов</a></br><?php
    }
    
    ?>


    Для запуска создайте в папке plugins папку с любым названием и в ней создайте файл index.php и закиньте туда этот код
    Рядом с файлом создайте текстовый файл с названием tocsv.csv с произвольным содержимым.
    активируйте плагин и попробуйте его в работе

    yetgqcb_wn9mv0r-hs_yvkth738.jpeg
  • Как скачать файл на сайте wordpress через метод post?

    Все верно. Т.к. эта функция будет вызываться для всех запросов приходящих на сервер, то
    проверка в if ($_SERVER['REQUEST_URI']== $GET11) и нужна для того, что бы понять что сейчас обрабатывается запрос который должен вернуть файл.

    как Вы считаете "/wor/ru/2018/12/04/frtt/" это правильный адрес запроса, если да, то с ним и сравнивайте
    if ($_SERVER['REQUEST_URI']== '/wor/ru/2018/12/04/frtt/')
  • Как скачать файл на сайте wordpress через метод post?

    попробуйте проверить содержимое каждой переменной в каждой инструкции поочередно их включая.
    например посмотрите чем у Вас заполняется переменная $GET11 и что возвращает $_SERVER['REQUEST_URI']
    Может Вы сравниваете разные значения

    для меня самое простое это вывести ее в файл. Использую такую команду
    error_log('$GET11: ' . print_r($GET11, true) . PHP_EOL, 3, __DIR__ . "my-errors.log" );

    И Возле исполняемого файла появится файл my-errors.log
  • Какой формулой в Excel можно это рассчитать?

    Тут надо выстраивать алгоритм расчета, а потом его уже переносить на илист с данными
    Например сначала загружаем самые большие значения, пока влазят. Потом поменьше пока влазят и т.д. до конца списка, Так наполнится машина, из остатков наполняем следующую, и пока не закончится товар.
    На листе это будет как - товары в строках, машины в столбцах, между машинами столбец промежуточных итогов.
    Загрузка это суммирование с накоплением.
  • Какой формулой в Excel можно это рассчитать?

    Excel - очень богатый инструмент, и область его применения не ограничивается простым калькулятором
    100% уже кто то решал Вашу задачу, и возможно есть даже готовое программное обеспечение
    Выбор за Вами, в чем вы будете разбираться.

    Могу сказать точно, что Excel в состоянии выполнить эту задачу, но потрудиться придется.
  • Как скачать файл на сайте wordpress через метод post?

    Но похоже я делаю что не так

    Вынесите весь Ваш код функцию pchv_ew_template_redirect

    Судя по тому, что вы написали, Вы не сосем понимаете работу хуков.
    Это как обработчики которые вызываются при наступлении события

    Когда вы прописали, код
    add_action('template_redirect','pchv_ew_template_redirect');
    (кстати его надо прописывать в области инициализации Вашего плагина, или отдельно в functions.php)
    Это говорит WordPress-у, что когда он будет разбирать входящий запрос, то нужно вызвать эту функцию. И в этой функции Вы проверяете Ваш ли это запрос ( if ($_SERVER['REQUEST_URI']== "последняя часть вашего URLа") ), если нет, то выходите, иначе выполняете то что нужно.
  • Существует ли плагин для WP WooCommerce объединяющий товары по вариациям?

    вы не совсем внимательно искали
    pAjP1bEf?a
    вот код
    <?php
    /**
    * @version 1.0
    */
    /*
    Plugin Name: Hummel Color Upsells
    Description: Плагин для отображения товаров других расцветок товара.
    Author: Anatoliy Pychev
    Version: 1.0
    Author URI:
    */
    
    class Hummel_Color_Upsells_Plugin {
    
        private static $notices = array();
        
      public static function init() {
    
        register_activation_hook( __FILE__, array( __CLASS__, 'activate' ) );
        register_deactivation_hook( __FILE__, array( __CLASS__, 'deactivate' ) );
        register_uninstall_hook( __FILE__, array( __CLASS__, 'uninstall' ) );
    
        add_action( 'init', array( __CLASS__, 'wp_init' ) );
        add_action( 'admin_notices', array( __CLASS__, 'admin_notices' ) );
      }
    
      public static function wp_init() {
        $active_plugins = get_option( 'active_plugins', array() );
        $woocommerce_is_active = in_array( 'woocommerce/woocommerce.php', $active_plugins );
        if ( !$woocommerce_is_active )  {
          self::$notices[] = '<div class="error"><p><strong>Hummel Orders Exporter Plugin</strong>  требуется наличие активнокго плагина Woocommerce.</p></div>';
        } else {
    
          // добавляем обработчик 
                add_action( 'woocommerce_before_add_to_cart_form', array( __CLASS__, 'display_color_upsells' ), 10 );
     
            }
        }  
    
        /**
         * Выводит на фронт миниатюру этого же товар в другой расцветке
         */
        public static function display_color_upsells() {
            global $woocommere, $product;
    
            //error_log(__METHOD__ . PHP_EOL , 3, WP_PLUGIN_DIR . '/hummel-color-upsells/log.log');
    
            $sku = trim($product->get_sku());
            
            // исключаем наборы и товары без артикулов
            if ( !$sku || 'bndl' == substr( $sku, 0, 4 ) ) { return; }
    
            $article = substr( $sku, 0, 7 );
    
            $args = array(
                'post_type' => 'product',
                'post_status' => 'publish',
                'numberposts' => -1,
                'meta_query' => array( 
                    array(
                        'key' => '_sku',
                        'value' => $article,
                        'compare' => 'LIKE'
                    ))
            ) ;
            $clrposts = get_posts($args);
    
            if ( $clrposts ){
    
                echo '<p style="margin: 0px;"><strong>Цветовая палитра</strong></p>';
                echo '<div class="color-upsells" style="display:flex; display:-ms-flexbox;">';
    
          foreach( $clrposts as $clrpost ){ 
                    $prd = wc_get_product( $clrpost );
                    $color = substr($prd->get_sku(), 8, 4);
                    $imgcss = 'border: 0px solid black;';
                    if ( $sku == $prd->get_sku() ) { $imgcss = 'border: 1px solid black;'; }
                    $imgcss = $imgcss . ' margin: 2px; padding: 2px;';
                    
                    $html = '<a href="' . get_permalink( $clrpost ) . 
                            '" title="' . $color .
                            '" alt="' . esc_attr( get_the_title( $clrpost ) ) . 
                            '">' .  get_the_post_thumbnail($clrpost, array(45,45), array('style' => $imgcss)  )  .
                            '</a>';
                    echo $html;
                }
    
          echo '</div>';
        }
    
        }
        
        /**
       * Plugin display notices.
       * 
       */
      public static function admin_notices() { 
        if ( !empty( self::$notices ) ) {
          foreach ( self::$notices as $notice ) {
            echo $notice;
          }
        }
      }
    
        /**
       * Plugin activation work.
       * 
       */
      public static function activate() {
      }
    
      /**
       * Plugin deactivation.
       *
       */
      public static function deactivate() {
      }
    
      /**
       * Plugin uninstall. 
       *
       */
      public static function uninstall() {
      }    
    }
    Hummel_Color_Upsells_Plugin::init();


    правда, код надо будет подправить