• Как собрать личный кабинет с курсами на Wordpress?

    OtshelnikFm
    @OtshelnikFm Куратор тега WordPress
    Обо мне расскажет yawncato.com
    У каждого свои задачи и универсального решения нет. LMS системы есть - и под вордпресс, но для кого-то они слишком избыточны. Это премиум сегмент. А если дешево и сердито - то самостоятельно собирать из разных плагинов и интегрировать их между собой.
    Ответ написан
    Комментировать
  • Как собрать личный кабинет с курсами на Wordpress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Из всех известных мне плагинов для реализации курсов пожалуй, этот самый распространенный -
    https://ru.wordpress.org/plugins/learnpress/

    Разве, что вы можете вдобавок взять Wp Recall (плагин личного кабинета) и интегрировать его с предыдущим плагином...

    А так, как по мне подобные проекты не нужно писать на WordPress. Возьмите фреймворк (Yii2, Laravel, Django, Spring) и напишите на них
    Ответ написан
    Комментировать
  • Как собрать личный кабинет с курсами на Wordpress?

    @freelancer007
    Скорее всего Вы не найдете универсального инструмента для решения данной задачи.
    Один из возможных вариантов, это брать WooCommerce и допиливать под свои задачи.
    Ответ написан
    Комментировать
  • Какую тему wordpress использовать?

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    Если сайт на продажу как teamplate и вы собираетесь делать его с помощью конструктора - то темы описанные в ответе @SKHD, если же вы делаете её для заказчика, я бы посоветовал сверстать - будет проще, прикрутить туда плагины кастомных полей, и сделать всё красиво. Тема - создать свою с нуля(teaplate underscore), без навешивания туда тысячи плагинов, что бы не плодить говнокод.
    Ответ написан
    6 комментариев
  • Wordpress, как продавать не создавая товар?

    @vladryjoff
    Никак. Нужно создать товар - собственно курс, и при помощи шорткода вывести кнопку купить. которая будет вести на страницу чекаут. Ну и настроить редиректы, с архива товаров и со страницы товара на главную, раз это лендос.
    Ответ написан
    Комментировать
  • Wordpress, как продавать не создавая товар?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    Для продажи одного товара, WC не надо, у любой платёжки есть простой скрипт для таких целей, достаточно передать в него параметры и разобрать ответ
    Ответ написан
    6 комментариев
  • Какая есть замена плагину для Wordpress?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Привет.

    Подскажите пожалуйста нормальный плагин замену qTranslate-X, чтобы не потерять двуязычность в постах.

    WP Multilang попробуйте. Написано, что он совместим с qTranslate-X и Gutenberg.

    И ещё вопрос по Wordpress , но не про мультиязык.
    Есть сайт для клиента, куда прямо в плагин я внёс изменение одно - касаемое верстки.
    При обновлении плагина - изменение, конечно сносится. Есть ли какой-то способ, чтобы именно это изменение не пропадало? там буквально 5-6 строк, но они делают нужный мне стиль.
    Может как-то где-то прописать, чтобы это изменение всегда само туда прописывалось? ))

    Лучше вынесите в отдельный вопрос с подробностями: какое и где изменение.
    Ответ написан
    Комментировать
  • Какая есть замена плагину для Wordpress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Можно еще использовать WPML. + есть дополнение для переноса контента с qtranslate-x на WPML
    https://ru.wordpress.org/plugins/qtranslate-to-wpm...
    https://wpml.org/forums/topic/qtranslate-x-to-wpml-2/
    Ответ написан
    Комментировать
  • Как в Wordpress ловить UTM-метки и отдавать всё в таблицы Google?

    насчет отлова меток не знаю, а вот в google таблице отправлять данные это просто
    Принцип такой: Собираете данные, делаете POST запрос в google. Этот запрос отлавливает Ваш скрипт и разбирает данные по ячейкам таблицы.

    для этого
    В google таблице заходите в "Инструменты->Редактор скриптов" и пишите код приема
    function doPost(e) {
        
      if(typeof e !== 'undefined')
        var par = JSON.parse(e.postData.contents);
    
      PutDataInSheet(par);
      return ContentService.createTextOutput("ok");  
    }
    
    
    function PutDataInSheet(e) {
      // в кавычках ключ вашей таблицы, его взять в адресной строке, когда вы находитесь в вашей таблице
      var wbk = SpreadsheetApp.openById("1Q3yDiWwOMosybBho_attZYW6roT4SOP4-oHPDARzA_s");  // таблица - февраль 2018
     
      // далее идет разбор данных и раскладка по ячейкам
      var wks = wbk.getSheetByName("сайт");
      var row = wks.getLastRow()+1;
      var d = new Date(); 
      wks.getRange("A"+row).setValue(e['updated_at']);
      wks.getRange("B"+row).setValue(e['id']);
      wks.getRange("C"+row).setValue(e['billing_address']['last_name'] + ' ' + e['billing_address']['first_name']);
      // Убираем все символы кроме цифр из номера телефона
      var phn = e['billing_address']['phone'];
      phn = phn.replace(/[^\d]/g, "");  
      wks.getRange("D"+row).setValue(phn);
      wks.getRange("E"+row).setValue(e['billing_address']['address_1']);
      wks.getRange("G"+row).setValue(parseFloat(e['subtotal']));
      for (i in e['line_items']) {
        var item = e['line_items'][i];
        wks.getRange("J"+row).setValue(item['sku']);
        wks.getRange("K"+row).setValue(item['quantity']);
        wks.getRange("L"+row).setValue(parseFloat(item['subtotal']));
        wks.getRange('A' + row + ':L' + row).setBackground('#d9ead3');
        row ++;
      }
    }


    Сохраняете проект и выбираете "Опубликовать->Развернуть как веб приложение". Получите ссылку для доступа к приложению. Ее надо скопировать и вставить в серверный код

    Далее надо написать серверный код для отправки

    /**
         * выполняет отправку заказа в google таблицы 
         */
        public static function SendOdrerToGoogleSheet($order_id){
            // собираем данные в массив
            $order = self::getOrderDetailById($order_id);
    
            
            // ссылка на WEB приложение
    		$url = 'https://script.google.com/macros/s/AKfycby_0wdvKJuWbRZEdJUY1xeRWXmUiRTOuX584HhAxtde4y8ZKJ4/exec';
                        
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);   // переходит по редиректам
            curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.71 Safari/534.24");
            curl_setopt($ch, CURLOPT_POST, 1); // Do a regular HTTP POST
            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($order)); // Set POST data
    
            $response = curl_exec($ch);
            curl_close($ch);
        }


    Ну вот и все. Код взят с рабочего инструмента.

    Единственное что я так и не разобрался как настроить CURL на асинхронную передачу. Ну что бы не ждал ответа. Данные то отправляем в одностороннем порядке, зачем тормозить сервер ожиданием
    Ответ написан
    Комментировать
  • Как в шаблоне wordpress убрать сверху css и js?

    Slams
    @Slams
    Поставьте плагин Autoptimize https://ru.wordpress.org/plugins/autoptimize/
    Собирает в кучу скрипты и стили, может стили загружать inline или в футере с подгрузкой critical стилей inline.

    В общем, то что нужно. Обратите внимание, что некоторые скрипты может быть нужно будет исключить в настройках плагина для нормальной работы.

    В общем, там хорошая документация, разберетесь :)
    Ответ написан
    Комментировать