Plugin Directory

Changeset 2340792


Ignore:
Timestamp:
07/15/2020 08:03:38 AM (5 years ago)
Author:
skyroom
Message:

version 1.4.5

Location:
skyroom-wp/trunk
Files:
1 deleted
24 edited

Legend:

Unmodified
Added
Removed
  • skyroom-wp/trunk/admin/js/script.js

    r2340745 r2340792  
    138138    // Show woocommerce metabox general tab for skyroom product type
    139139    $('.options_group.pricing').addClass('show_if_skyroom');
    140 
    141     // check room name input
    142     $('.english_input').on('keyup', function (event) {
    143         var input = $('.english_input').val();
    144         var arregex = /^[a-zA-Z0-9_ ]*$/;
    145         if (!arregex.test(input)) {
    146             alert('برای نام اتاق فقط کاراکترهای لاتین مورد قبول است.');
    147             $('.english_input').val("");
    148         }
    149     });
    150140});
  • skyroom-wp/trunk/config.php

    r2340745 r2340792  
    3939$parameters = [
    4040    'name' => 'skyroom',
    41     'version' => '2.0.0',
     41    'version' => '1.4.5',
    4242    'plugin.path' => plugin_dir_path(__FILE__),
    4343    'plugin.url' => plugin_dir_url(__FILE__),
  • skyroom-wp/trunk/languages/skyroom-fa_IR.po

    r2340772 r2340792  
    55"Project-Id-Version: Skyroom 1.0.0\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/skyroom\n"
    7 "POT-Creation-Date: 2020-06-19 21:05+0430\n"
    8 "PO-Revision-Date: 2020-07-15 11:53+0430\n"
     7"POT-Creation-Date: 2020-07-03 18:03+0430\n"
     8"PO-Revision-Date: 2020-07-03 18:12+0430\n"
    99"Last-Translator: \n"
    1010"Language-Team: \n"
     
    1414"Content-Transfer-Encoding: 8bit\n"
    1515"X-Generator: Poedit 2.2\n"
    16 "Plural-Forms: nplurals=1; plural=0;\n"
    17 "X-Poedit-KeywordsList: __;_e\n"
     16"Plural-Forms: nplurals=2; plural=(n > 1);\n"
    1817"X-Poedit-Basepath: ..\n"
    19 "X-Poedit-SearchPath-0: .\n"
     18"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;"
     19"_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;esc_attr__;esc_attr_e;"
     20"esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
     21"X-Poedit-SearchPath-0: src/Skyroom\n"
     22"X-Poedit-SearchPath-1: views\n"
    2023
    2124#: src/Skyroom/Adapter/WooCommerceAdapter.php:268
     
    159162"start working."
    160163msgstr ""
    161 "پلاگین <strong>اسکای‌روم</strong> با موفقیت فعال شد اما هنوز پیکربندی نشده‌است. "
    162 "لطفا به صفحه <a href=\"%s\">تنظیمات اسکای‌روم</a> بروید و پیکربندی را انجام دهید "
    163 "تا شروع به کار کند."
     164"پلاگین <strong>اسکای‌روم</strong> با موفقیت فعال شد اما هنوز پیکربندی نشده‌است. لطفا "
     165"به صفحه <a href=\"%s\">تنظیمات اسکای‌روم</a> بروید و پیکربندی را انجام دهید تا شروع "
     166"به کار کند."
    164167
    165168#: src/Skyroom/Repository/UserRepository.php:133
     
    280283#, php-format
    281284msgid "%s comment"
    282 msgstr "%s دیدگاه"
     285msgid_plural "%s comments"
     286msgstr[0] "%s دیدگاه"
     287msgstr[1] "%s دیدگاه"
    283288
    284289#: src/Skyroom/Tables/WPListTable.php:690
    285290#, php-format
    286291msgid "%s approved comment"
    287 msgstr "%s دیدگاه تایید شده"
     292msgid_plural "%s approved comments"
     293msgstr[0] "%s دیدگاه تایید شده"
     294msgstr[1] "%s دیدگاه تایید شده"
    288295
    289296#: src/Skyroom/Tables/WPListTable.php:692
    290297#, php-format
    291298msgid "%s pending comment"
    292 msgstr "%s دیدگاه منتظر تایید"
     299msgid_plural "%s pending comments"
     300msgstr[0] "%s دیدگاه منتظر تایید"
     301msgstr[1] "%s دیدگاه منتظر تایید"
    293302
    294303#: src/Skyroom/Tables/WPListTable.php:698 src/Skyroom/Tables/WPListTable.php:711
     
    308317#, php-format
    309318msgid "%s item"
    310 msgstr "%s مورد"
     319msgid_plural "%s items"
     320msgstr[0] "%s مورد"
     321msgstr[1] "%s مورد"
    311322
    312323#: src/Skyroom/Tables/WPListTable.php:843
     
    324335#: src/Skyroom/Tables/WPListTable.php:872
    325336#, php-format
     337msgctxt "paging"
    326338msgid "%1$s of %2$s"
    327339msgstr "%1$s از %2$s"
     
    356368
    357369#: src/Skyroom/Tasks/SyncTask.php:171
     370#, php-format
    358371msgid "Found one product"
    359 msgstr "یک محصول پیدا شد"
     372msgid_plural "Found %d products"
     373msgstr[0] "یک محصول پیدا شد"
     374msgstr[1] "%d محصول پیدا شد"
    360375
    361376#: src/Skyroom/Tasks/SyncTask.php:181
     377#, php-format
    362378msgid "Syncing one product with server..."
    363 msgstr "در حال همگام‌سازی یک محصول با سرور..."
     379msgid_plural "Syncing %d products with server..."
     380msgstr[0] "در حال همگام‌سازی یک محصول با سرور..."
     381msgstr[1] "در حال همگام‌سازی %d محصول با سرور..."
    364382
    365383#: src/Skyroom/Tasks/SyncTask.php:198
     
    381399
    382400#: src/Skyroom/Tasks/SyncTask.php:224
     401#, php-format
    383402msgid "Found one enrollment"
    384 msgstr "یک ثبت‌نام پیدا شد"
     403msgid_plural "Found %d enrollments"
     404msgstr[0] "یک ثبت‌نام پیدا شد"
     405msgstr[1] "%d ثبت‌نام پیدا شد"
    385406
    386407#: src/Skyroom/Tasks/SyncTask.php:234
     408#, php-format
    387409msgid "Syncing one enrollment with server..."
    388 msgstr "در حال همگام‌سازی یک ثبت‌نام‌ها با سرور..."
     410msgid_plural "Syncing %d enrollments with server..."
     411msgstr[0] "در حال همگام‌سازی یک ثبت‌نام با سرور..."
     412msgstr[1] "در حال همگام‌سازی %d ثبت‌نام با سرور..."
    389413
    390414#: src/Skyroom/Tasks/SyncTask.php:294
     
    401425#, php-format
    402426msgid "%d enrollment synced with server successfully"
    403 msgstr "%d ثبت‌نام با موفقیت با سرور همگام‌سازی شد"
     427msgid_plural "%d enrollments synced with server successfully"
     428msgstr[0] "یک ثبت‌نام با موفقیت با سرور همگام‌سازی شد"
     429msgstr[1] "%d ثبت‌نام با موفقیت با سرور همگام‌سازی شدند"
    404430
    405431#: src/Skyroom/Tasks/SyncTask.php:413
     
    510536"database."
    511537msgstr ""
    512 "پاکسازی همه اطلاعات اسکای‌روم (شناسه کاربران، شناسه اتاق‌ها و ثبت‌نام‌ها) از "
    513 "دیتابیس وردپرس."
     538"پاکسازی همه اطلاعات اسکای‌روم (شناسه کاربران، شناسه اتاق‌ها و ثبت‌نام‌ها) از دیتابیس "
     539"وردپرس."
    514540
    515541#: views/maintenance.php:52
     
    587613
    588614#: views/woocommerce-skyroom-order.php:3
    589 msgid "Username:"
    590 msgstr "نام کاربری:"
    591 
    592 #: views/woocommerce-skyroom-order.php:4
    593 msgid "Not Registred:"
    594 msgstr "ثبت نشده"
    595 
    596 #: views/woocommerce-skyroom-order.php:3
    597615msgid ""
    598616"You successfully enrolled in purchased courses. To attend classes, on announced "
    599 "schedules navigate to course page and click on 'Enter room' button. (Remember "
    600 "you should be logged in to site)"
     617"schedules navigate to course page and click on 'Enter room' button. (Remember you "
     618"should be logged in to site)"
    601619msgstr ""
    602620"ثبت‌نام شما در دوره‌های خریداری شده با موفقیت انجام شد. برای شرکت در کلاس‌ها در "
    603 "زمان‌های اعلام شده وارد صفحه دوره شده و روی دکمه 'ورود به کلاس' کلیک نمایید. "
    604 "(لطفا توجه کنید که باید وارد سایت شده باشید)"
     621"زمان‌های اعلام شده وارد صفحه دوره شده و روی دکمه 'ورود به کلاس' کلیک نمایید. (لطفا "
     622"توجه کنید که باید وارد سایت شده باشید)"
     623
     624#~ msgid "Skyroom Synchronization"
     625#~ msgstr "همگام‌سازی اسکای‌روم"
     626
     627#~ msgid "Synchronize"
     628#~ msgstr "همگام‌سازی"
    605629
    606630#~ msgid "Every %d Minutes"
    607631#~ msgstr "هر %d دقیقه"
    608 
    609 #~ msgid "Skyroom Synchronization"
    610 #~ msgstr "همگام‌سازی اسکای‌روم"
    611 
    612 #~ msgid "Synchronize"
    613 #~ msgstr "همگام‌سازی"
    614632
    615633#~ msgid "Syncing users with server..."
  • skyroom-wp/trunk/languages/skyroom.pot

    r2340772 r2340792  
    1313"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    1414"Language-Team: LANGUAGE <[email protected]>\n"
     15"Plural-Forms: nplurals=1; plural=0;\n"
    1516"X-Generator: Poedit 2.2\n"
    1617"X-Poedit-SourceCharset: UTF-8\n"
     
    584585
    585586#: views/woocommerce-skyroom-order.php:3
    586 msgid "Username:"
    587 msgstr ""
    588 
    589 #: views/woocommerce-skyroom-order.php:4
    590 msgid "Not Registred:"
    591 msgstr ""
    592 
    593 #: views/woocommerce-skyroom-order.php:3
    594587msgid ""
    595588"You successfully enrolled in purchased courses. To attend classes, on "
  • skyroom-wp/trunk/skyroom.php

    r2340772 r2340792  
    77 * Plugin URI:        https://skyroom.online/pages/wordpress-integration
    88 * Description:       A plugin to integrate skyroom with your wordpress site
    9  * Version:           2.0.0
     9 * Version:           1.4.5
    1010 * Author:            Skyroom
    1111 * Author URI:        https://skyroom.online/
     
    2727// Boot plugin
    2828add_action('plugins_loaded', [new Skyroom\Plugin(), 'boot']);
    29 
    30 function my_plugin_load_plugin_textdomain() {
    31     load_plugin_textdomain( 'skyroom', FALSE, basename( dirname( __FILE__ ) ) . '/languages/' );
    32 }
    33 add_action( 'plugins_loaded', 'my_plugin_load_plugin_textdomain' );
    34 
  • skyroom-wp/trunk/src/Skyroom/Adapter/WooCommerceAdapter.php

    r2340745 r2340792  
    44
    55use DownShift\WordPress\EventEmitterInterface;
    6 use Skyroom\Api\Client;
    76use Skyroom\Entity\Enrollment;
    87use Skyroom\Entity\Event;
     
    1514use Skyroom\WooCommerce\SkyroomProduct;
    1615use Skyroom\WooCommerce\SkyroomProductRegistrar;
    17 use Skyroom\WooCommerce\SkyroomWooMyAccount;
    18 use function DI\string;
    1916
    2017/**
     
    4542    private $viewer;
    4643
    47     /**
    48      * @var Client
    49      */
    50     private $client;
    51 
    5244    public function __construct(
    5345        EventEmitterInterface $eventEmitter,
    5446        DICallableFactory $callableFactory,
    5547        SkyroomProductRegistrar $productRegistrar,
    56         SkyroomWooMyAccount $skyroomWooMyAccount,
    57         Viewer $viewer,
    58         Client $client
     48        Viewer $viewer
    5949    )
    6050    {
     
    6252        $this->callableFactory = $callableFactory;
    6353        $this->productRegistrar = $productRegistrar;
    64         $this->skyroomWooMyAccount = $skyroomWooMyAccount;
    6554        $this->viewer = $viewer;
    66         $this->client = $client;
    6755    }
    6856
     
    7462        // Register custom product type
    7563        $this->productRegistrar->register();
    76 
    77         // Setup Woocommerce My Account Menu
    78         $this->skyroomWooMyAccount->setup();
    7964
    8065        // Show add-to-card btn
     
    379364                    }
    380365
     366                    $userRepository->addUserToRoom($user, $product->get_skyroom_id(), $orderId);
     367
    381368                    // Store event
    382369                    $info = [
     
    435422    function addToCart(Viewer $viewer)
    436423    {
    437         $context = $this->addToCartLink();
     424        global $product;
     425
     426        $context = [
     427            'product' => $product,
     428            'user_id' => get_current_user_id(),
     429        ];
    438430
    439431        $viewer->view('woocommerce-add-to-cart.php', $context);
     
    498490        ];
    499491    }
    500 
    501     public function addToCartLink()
    502     {
    503         global $product;
    504 
    505         $url = null;
    506         $id = get_current_user_id();
    507         $user = get_userdata($id);
    508         $channelId = $product->get_skyroom_id();
    509         $error = '';
    510         $params = [
    511             'id' => strval($id),
    512             'channelId' => intval($channelId),
    513             'nickname' => $user->display_name,
    514             'role' => 0
    515         ];
    516 
    517         try {
    518             $url = $this->client->request('getLoginUrl', $params);
    519         } catch (\Exception $exception) {
    520             $error = $exception->getMessage();
    521         }
    522 
    523 
    524         $context = [
    525             'product' => $product,
    526             'user_id' => $id,
    527             'url' => $url->login,
    528             'error' => $error,
    529         ];
    530         return $context;
    531     }
    532492}
  • skyroom-wp/trunk/src/Skyroom/Api/Client.php

    r2340745 r2340792  
    4343     *
    4444     * @param string $action Requested action
    45      * @param array $params Request parameters
     45     * @param array  $params Request parameters
    4646     *
    47      * @return mixed Webservice result
     47     * @throws ConnectionNotEstablishedException
    4848     * @throws InvalidResponseStatusException
    4949     * @throws RequestFailedException
    5050     *
    51      * @throws ConnectionNotEstablishedException
     51     * @return mixed Webservice result
    5252     */
    5353    public function request($action, $params = null)
    5454    {
    55         $data = $this->URL->toString();
     55        $url = $this->URL->toString();
    5656        $body = [];
    5757        $body['action'] = $action;
     
    5959            $body['params'] = $params;
    6060        }
    61         $url = $data['url'];
    62         if ($action == 'ping') {
    63             $url = $url . 'info';
    64             $method = 'GET';
    65         }
    66         if ($action == 'getRooms') {
    67             $url = $url . 'rooms';
    68             $method = 'GET';
    69         }
    70         if ($action == 'createRoom') {
    71             $url = $url . 'rooms';
    72             $method = 'POST';
    73         }
    74         if ($action == 'updateRoom'){
    75             $url = $url . 'rooms/'.$params['room_id'];
    76             $method = 'PATCH';
    77         }
    78         if ($action == 'getRoom'){
    79             $url = $url . 'rooms/'.$params['room_id'];
    80             $method = 'GET';
    81         }
    82         if ($action == 'getLoginUrl'){
    83             $url = $url . 'attendees/token';
    84             $method = 'POST';
    85         }
    8661
    87 
    88         if ($method == 'GET') {
    89             $args = [
    90                 'headers' => array(
    91                     'Content-Type' => 'application/json',
    92                     'Authorization' => 'Bearer ' . $data['api'],
    93                 ),
    94                 'method' => $method,
    95                 'timeout' => 60,
    96             ];
    97         } elseif ($method == 'POST' || $method == 'PATCH') {
    98             $args = array(
    99                     'method' => $method,
    100                     'headers' => array(
    101                         'Content-Type' => 'application/json',
    102                         'Authorization' => 'Bearer ' . $data['api'],
    103                     ),
    104                     'body' => json_encode($params),
    105                     'timeout' => 60,
    106             );
    107         }
     62        $args = [
     63            'headers' => array(
     64                'Content-Type' => 'application/json; charset=UTF-8',
     65            ),
     66            'body' => json_encode($body),
     67            'timeout' => 60,
     68        ];
    10869
    10970        $response = wp_remote_post($url, $args);
    11071        $status = wp_remote_retrieve_response_code($response);
    111 
    112 
    11372        if (empty($status)) {
    11473            throw new ConnectionNotEstablishedException();
    11574        }
    11675
    117         if ($status < 200 || $status > 299) {
     76        if ($status !== 200) {
    11877            throw new InvalidResponseStatusException();
    11978        }
    120 
    12179
    12280        $body = wp_remote_retrieve_body($response);
    12381        $result = json_decode($body);
    12482
    125         if ($action == 'createRoom') {
    126             return $result->id;
     83        if ($result === null && json_last_error() !== JSON_ERROR_NONE
     84            || !property_exists($result, 'ok')
     85        ) {
     86            throw new InvalidResponseStatusException();
    12787        }
    12888
    129         if ($action == 'getRoom' || $action == 'ping' || $action == 'getLoginUrl') {
    130             return $result;
     89        if ($result->ok === false) {
     90            throw new RequestFailedException($result->error_code, $result->error_message);
    13191        }
    13292
    133         return $result->items;
     93        return $result->result;
    13494    }
    13595}
  • skyroom-wp/trunk/src/Skyroom/Api/URL.php

    r2340745 r2340792  
    3939    public function toString()
    4040    {
    41         $data['url'] = 'https://api.skyroom.online/v2/';
    42         $data['api'] =  $this->apiKey;
    43         return $data;
     41        return rtrim($this->siteUrl, '/').'/skyroom/api/'.$this->apiKey;
    4442    }
    4543}
  • skyroom-wp/trunk/src/Skyroom/Entity/Event.php

    r2340745 r2340792  
    9494        return $this->createdAt;
    9595    }
    96 
    9796}
  • skyroom-wp/trunk/src/Skyroom/Menu/SettingSubmenu.php

    r2340745 r2340792  
    5252        $error = '';
    5353        $success = null;
    54         $username = null;
    5554
    5655        // Handle form submit
    5756        if (isset($_POST['save'])) {
    58             if(isset($_POST['skyroom_site_url']) && !empty($_POST['skyroom_site_url'])){
    59                 $skyroomSiteUrl = sanitize_text_field($_POST['skyroom_site_url']);
    60             }
    61 
    62             if (isset($_POST['skyroom_api_key']) && !empty($_POST['skyroom_api_key'])){
    63                 $skyroomApiKey = sanitize_text_field($_POST['skyroom_api_key']);
    64             }
    65 
    66             if (isset($_POST['skyroom_integrated_plugin']) && !empty($_POST['skyroom_integrated_plugin'])){
    67                 $skyroomIntegratedPlugin = sanitize_text_field($_POST['skyroom_integrated_plugin']);
    68             }
     57            $skyroomSiteUrl = $_POST['skyroom_site_url'];
     58            $skyroomApiKey = $_POST['skyroom_api_key'];
     59            $skyroomIntegratedPlugin = $_POST['skyroom_integrated_plugin'];
    6960
    7061            // Change Client url object
     
    8778            $skyroomApiKey = get_option('skyroom_api_key');
    8879            $skyroomIntegratedPlugin = get_option('skyroom_integrated_plugin');
    89             if(!empty($skyroomSiteUrl)) {
    90                 try {
    91                     $data = $this->client->request('ping');
    92                     $username = $data->username;
    93                 }
    94                 catch (\Exception $e){
    95                     $error = $e->getMessage();
    96                 }
    97 
    98             }
    9980        }
    10081
     
    10586            'skyroomApiKey' => $skyroomApiKey,
    10687            'skyroomIntegratedPlugin' => $skyroomIntegratedPlugin,
    107             'username' => $username,
    10888        ];
    10989        $this->viewer->view('settings.php', $context);
  • skyroom-wp/trunk/src/Skyroom/Menu/UserSubmenu.php

    r2340745 r2340792  
    5252            $users = $this->repository->getUsers();
    5353            $table = new UsersTable($users);
    54 
    5554            $table->prepare_items();
    5655
     
    5857                'table' => $table,
    5958            ];
    60 //            print_r($context);
    61 //            die(1);
    6259            $this->viewer->view('users.php', $context);
    6360
  • skyroom-wp/trunk/src/Skyroom/Plugin.php

    r2340745 r2340792  
    99use DownShift\WordPress\EventEmitterInterface;
    1010use Skyroom\Adapter\PluginAdapterInterface;
     11use Skyroom\Controller\MaintenanceController;
    1112use Skyroom\Controller\SkyroomController;
    12 use Skyroom\Controller\MaintenanceController;
    13 use Skyroom\Entity\Event;
    14 use Skyroom\Factory\DICallableFactory;
    1513use Skyroom\Menu\EventSubmenu;
    1614use Skyroom\Menu\MainMenu;
     15use Skyroom\Menu\MaintenanceSubmenu;
    1716use Skyroom\Menu\RoomSubmenu;
    1817use Skyroom\Menu\SettingSubmenu;
    19 use Skyroom\Menu\MaintenanceSubmenu;
    2018use Skyroom\Menu\UserSubmenu;
    21 use Skyroom\Repository\EventRepository;
    22 use Skyroom\Repository\UserRepository;
    2319use Skyroom\Shortcoes\UserEnrollmentShortcode;
    2420use Skyroom\Tasks\SyncDataTaskRunner;
  • skyroom-wp/trunk/src/Skyroom/Repository/RoomRepository.php

    r2340745 r2340792  
    5555        }, $roomsArray);
    5656
    57 
    5857        $prods = $this->pluginAdapter->getProducts($ids);
    59 
    6058        $products = [];
    6159        foreach ($prods as $product) {
     
    6866            $rooms[] = new Room($room, $product);
    6967        }
     68
    7069        return $rooms;
    7170    }
  • skyroom-wp/trunk/src/Skyroom/Repository/UserRepository.php

    r2340745 r2340792  
    1010use Skyroom\Exception\InvalidResponseStatusException;
    1111use Skyroom\Exception\RequestFailedException;
    12 use function DI\object;
    1312
    1413/**
     
    3837     * @param PluginAdapterInterface $pluginAdapter
    3938     */
    40     public function __construct(Client $client, EventRepository $eventRepository, PluginAdapterInterface $pluginAdapter, EventRepository $event)
     39    public function __construct(Client $client, EventRepository $eventRepository, PluginAdapterInterface $pluginAdapter)
    4140    {
    4241        $this->client = $client;
    4342        $this->pluginAdapter = $pluginAdapter;
    44         $this->event = $event;
    4543    }
    4644
     
    5654    public function getUsers()
    5755    {
    58         $events = $this->event->getAll();
    59         $usersArray = [];
    60         foreach ($events as $ev) {
    61             $usersArray[] = $ev->getErrorInfo();
    62         }
    63         $usersArrayFinal = [];
    64         foreach ($usersArray as $user) {
    65             if (!empty($user['item_id'])) {
    66                 $userData = get_userdata($user['user_id']);
    67                 $product = wc_get_product($user['item_id']);
    68                 $usersArrayFinal[] = (object)array(
    69                     'id' => $user['user_id'],
    70                     'product' => $product->name,
    71                     'nickname' => $userData->display_name,
    72                     'status' => 1,
    73                 );
    74             }
    75         }
    76 
     56        $usersArray = $this->client->request('getUsers');
    7757        $ids = array_map(function ($user) {
    7858            return $user->id;
    79         }, $usersArrayFinal);
     59        }, $usersArray);
    8060
    8161        $wpUsersArray = get_users([
     
    8666
    8767        $wpUsers = [];
    88         $res = [];
    8968        foreach ($wpUsersArray as $wpUser) {
    9069            $wpUsers[$this->getSkyroomId($wpUser->ID)] = $wpUser;
    91             $res [] = $wpUser->ID;
    92         }
    93 
     70        }
    9471
    9572        $users = [];
    96         foreach ($usersArrayFinal as $user) {
     73        foreach ($usersArray as $user) {
    9774            $users[] = new User($user, isset($wpUsers[$user->id]) ? $wpUsers[$user->id] : null);
    9875        }
     76
    9977        return $users;
    10078    }
     
    11189    public function addUser($user)
    11290    {
    113         $this->updateSkyroomId($user->ID, $user->ID);
     91        $params = [
     92            'username' => $this->generateUsername($user->ID),
     93            'password' => uniqid('', true),
     94            'nickname' => $user->display_name,
     95        ];
     96
     97        $id = $this->client->request('createUser', $params);
     98
     99        // Link skyroom user to wordpress
     100        $this->updateSkyroomId($user->ID, $id);
    114101    }
    115102
     
    209196            ]
    210197        );
     198
    211199        $this->pluginAdapter->setEnrollmentSynced($user->ID, $postId);
    212200    }
  • skyroom-wp/trunk/src/Skyroom/Shortcoes/UserEnrollmentShortcode.php

    r2340745 r2340792  
    44
    55use Skyroom\Adapter\PluginAdapterInterface;
    6 use Skyroom\Api\Client;
    76use Skyroom\Repository\UserRepository;
    87use Skyroom\Util\Viewer;
     
    2625
    2726    /**
    28      * @var Client
    29      */
    30     private $client;
    31 
    32     /**
    3327     * UserEnrollmentShortcode constructor
    3428     *
     
    3630     * @param Viewer $viewer
    3731     */
    38     public function __construct(PluginAdapterInterface $pluginAdapter, Viewer $viewer, Client $client)
     32    public function __construct(PluginAdapterInterface $pluginAdapter, Viewer $viewer)
    3933    {
    4034        $this->pluginAdapter = $pluginAdapter;
    4135        $this->viewer = $viewer;
    42         $this->client = $client;
    4336    }
    4437
     
    4639    {
    4740        $user = wp_get_current_user();
    48         $error = '';
    4941        if ($user->exists()) {
    50             $url = null;
    51             $id = get_current_user_id();
    52             $user = get_userdata($id);
    5342            $context = [];
    54             $enrolls['enrollments'] = $this->pluginAdapter->getUserEnrollments($user->ID);
    55             foreach ($enrolls['enrollments'] as $res) {
    56                 $product = $res->getProduct();
    57                 if ($product) {
    58                     $channelId = $product->getSkyroomId();
    59                     $params = [
    60                         'id' => strval($id),
    61                         'channelId' => intval($channelId),
    62                         'nickname' => $user->display_name,
    63                         'role' => 0
    64                     ];
    65                     try {
    66                         $url = $this->client->request('getLoginUrl', $params);
    67                     }
    68                     catch (\Exception $exception){
    69                         $error = $exception->getMessage();
    70                     }
    71 
    72                     $context [] = [
    73                             'enrollments' => $res,
    74                             'url' => $url
    75                     ];
    76 
    77                 }
    78             }
    79             if(!empty($error)){
    80                 $context = [
    81                     'error' => $error
    82                 ];
    83             }
     43            $context['enrollments'] = $this->pluginAdapter->getUserEnrollments($user->ID);
    8444
    8545            $this->viewer->view('enrollments.php', $context);
  • skyroom-wp/trunk/src/Skyroom/Tables/RoomsTable.php

    r2340745 r2340792  
    122122            'post' => $this->postTypeString,
    123123            'name' => __('Name', 'skyroom'),
    124 //            'status' => __('Status', 'skyroom'),
    125 //            'delete' => __('Delete', 'skyroom'),
     124            'status' => __('Status', 'skyroom'),
    126125        );
    127126    }
  • skyroom-wp/trunk/src/Skyroom/Tables/UsersTable.php

    r2340745 r2340792  
    2020     * RoomsTable constructor.
    2121     *
    22      * @param array $users Table items
     22     * @param   array $users Table items
    2323     */
    2424    public function __construct($users)
     
    4242        $sortable = array();
    4343        $this->_column_headers = array($columns, $hidden, $sortable);
    44 //        if ($this->users) {
    45             $usersCount = count($this->users);
    46 //        } else {
    47 //            $usersCount = 0;
    48 //        }
     44        $usersCount = count($this->users);
    4945        $this->set_pagination_args(array(
    5046            'total_items' => $usersCount,
     
    5753     * General method for rendering columns
    5854     *
    59      * @param User $item
    60      * @param string $column_name
     55     * @param   User  $item
     56     * @param   string $column_name
    6157     *
    6258     * @return  string Rendered item
     
    8278     * Render nickname column
    8379     *
    84      * @param User $item Row data
     80     * @param   User $item Row data
    8581     *
    8682     * @return  string Rendered item
     
    8985    {
    9086        if (empty($wpUser = $item->getWpUser())) {
    91             return '<strong>' . $item->getNickname() . '</strong>';
     87            return '<strong>'.$item->getNickname().'</strong>';
    9288        } else {
    93             return '<strong><a href="' . get_edit_user_link($item->getWpUser()->ID) . '">' . $item->getNickname() . '</a>';
     89            return '<strong><a href="'.get_edit_user_link($item->getWpUser()->ID).'">'.$item->getNickname().'</a>';
    9490        }
    9591    }
     
    9894     * Render wp user_login column
    9995     *
    100      * @param User $item Row data
     96     * @param   User $item Row data
    10197     *
    10298     * @return  string Rendered item
     
    121117        return array(
    122118            'nickname' => __('Nickname', 'skyroom'),
     119            'username' => __('Username', 'skyroom'),
    123120            'wp_user_login' => __('Wordpress username', 'skyroom'),
    124 //            'product' => __('Product', 'skyroom'),
    125121            'status' => __('Status', 'skyroom'),
    126122        );
  • skyroom-wp/trunk/src/Skyroom/Tasks/SyncTask.php

    r2340745 r2340792  
    6363        $this->tasks = [
    6464            'syncRooms',
    65 //            'syncEnrolls'
     65            'syncEnrolls'
    6666        ];
    6767    }
  • skyroom-wp/trunk/src/Skyroom/WooCommerce/SkyroomProductRegistrar.php

    r2340745 r2340792  
    132132    public function processMeta($postId, Client $client)
    133133    {
    134         if (isset($_POST['_skyroom_name']) && !empty($_POST['_skyroom_name'])) {
    135 
    136             $name = sanitize_title($_POST['_skyroom_name']) ?: sanitize_title($_POST['post_name']);
    137         }
    138         if (isset($_POST['_skyroom_title']) && !empty($_POST['_skyroom_title'])) {
    139             $title = sanitize_title($_POST['_skyroom_title']) ?: sanitize_title($_POST['post_title']);
    140         }
    141         if (isset($_POST['_skyroom_capacity']) && !empty($_POST['_skyroom_capacity'])) {
    142             $capacity = sanitize_title($_POST['_skyroom_capacity']) ?: null;
    143         }
     134        $name = $_POST['_skyroom_name'] ?: $_POST['post_name'];
     135        $title = $_POST['_skyroom_title'] ?: $_POST['post_title'];
     136        $capacity = $_POST['_skyroom_capacity'] ?: null;
    144137
    145138        $product = wc_get_product($postId);
     
    174167            $totalSales = get_post_meta($postId, 'total_sales', true);
    175168
    176 
    177169            update_post_meta($postId, '_skyroom_name', $room->name);
    178170            update_post_meta($postId, '_skyroom_title', $room->title);
  • skyroom-wp/trunk/views/enrollments.php

    r2340745 r2340792  
    33defined('WPINC') || die;
    44
    5 if (empty($context)) : ?>
     5
     6if (empty($enrollments)) : ?>
    67    <p class="<?php echo apply_filters('skyroom_no_enrollment_class', 'no-enrollments') ?>">
    78        <strong>
     
    910        </strong>
    1011    </p>
    11 <?php elseif (!empty($error)): ?>
    12     <h2><?php echo apply_filters('skyroom_enrollments_enrolled_courses', __('Enrolled Courses', 'skyroom')) ?></h2>
    13 
    14     <div class="notice notice-error is-dismissible">
    15         <p><?php echo $error ?></p>
    16     </div>
    1712<?php else: ?>
    1813    <?php do_action('skyroom_before_enrollments_table') ?>
     
    2924        </thead>
    3025        <tbody>
    31         <?php foreach ($context as $enroll) : ?>
    32         <?php $enrollment = $enroll['enrollments']; ?>
    33         <?php $url = $enroll['url']; ?>
    34         <?php if($enrollment->getProduct()) {?>
     26        <?php foreach ($enrollments as $enrollment) : ?>
    3527            <tr>
    3628                <td><?php echo $enrollment->getProduct()->getTitle() ?></td>
    3729                <td><?php echo date_i18n('j F Y', $enrollment->getEnrollTime()) ?></td>
    3830                <td>
    39                     <a href="<?php echo $url->login ?>" class="button alt">
     31                    <a href="<?php echo home_url('redirect-to-room/'.$enrollment->getProduct()->getSkyroomId()) ?>" class="button alt">
    4032                        <?php echo apply_filters('skyroom_enrollments_enter_class_text', __('Enter class', 'skyroom')) ?>
    4133                    </a>
    4234                </td>
    4335            </tr>
    44         <?php } endforeach; ?>
     36        <?php endforeach; ?>
    4537        </tbody>
    4638    </table>
  • skyroom-wp/trunk/views/settings.php

    r2340745 r2340792  
    2424                    <input type="text" name="skyroom_site_url" id="skyroom_site_url" class="regular-text ltr"
    2525                           value="<?php echo ($skyroomSiteUrl ? esc_attr($skyroomSiteUrl) : 'https://skyroom.online') ?>"
    26                            placeholder="<?php echo esc_attr(sprintf(__('e.g: %s', 'skyroom'), 'https://skyroom.online')) ?>" required>
     26                           placeholder="<?php echo esc_attr(sprintf(__('e.g: %s', 'skyroom'), 'https://skyroom.online')) ?>">
    2727                    <p id="skyroom_site_url_desc">
    2828                </td>
     
    3434                <td>
    3535                    <input type="text" name="skyroom_api_key" id="skyroom_api_key" class="regular-text ltr"
    36                            value="<?php echo ($skyroomApiKey ? esc_attr($skyroomApiKey) : '') ?>" required>
     36                           value="<?php echo ($skyroomApiKey ? esc_attr($skyroomApiKey) : '') ?>">
    3737                    <p class="description"><?php _e('API key should be provided to you by skyroom support', 'skyroom') ?></p>
    3838                </td>
     
    4343                </th>
    4444                <td>
    45                     <select name="skyroom_integrated_plugin" id="skyroom_integrated_plugin" required>
     45                    <select name="skyroom_integrated_plugin" id="skyroom_integrated_plugin">
    4646                        <option value="woocommerce"<?php echo $skyroomIntegratedPlugin === 'wocommerce' ? ' selected' : '' ?>>
    4747                            <?php _e('WooCommerce', 'skyroom') ?>
    4848                        </option>
    4949                    </select>
    50                 </td>
    51             </tr>
    52             <tr>
    53                 <th scope="row">
    54                     <label for="skyroom_username"><?php _e('Username:', 'skyroom') ?></label>
    55                 </th>
    56                 <td>
    57                     <?php echo ($username ? esc_attr($username) : _e('Not Registred:', 'skyroom')) ?>
    5850                </td>
    5951            </tr>
  • skyroom-wp/trunk/views/woocommerce-add-to-cart.php

    r2340745 r2340792  
    2828<?php elseif ($purchased) : ?>
    2929    <?php do_action('skyroom_before_enter_room_button') ?>
    30     <?php if (empty($error)) : ?>
    31         <a href="<?php echo $url ?>" class="button alt">
    32             <?php _e('Enter room', 'skyroom') ?>
    33         </a>
    34     <?php else: ?>
    35         <div class="notice notice-error is-dismissible">
    36             <p><?php echo $error ?></p>
    37         </div>
    38     <?php endif; ?>
     30    <a href="<?php echo home_url('redirect-to-room/' . $product->get_skyroom_id()) ?>" class="button alt">
     31        <?php _e('Enter room', 'skyroom') ?>
     32    </a>
    3933    <?php do_action('skyroom_after_enter_room_button') ?>
    4034<?php else : ?>
  • skyroom-wp/trunk/views/woocommerce-product-tab.php

    r2340745 r2340792  
    88            'value' => $name,
    99            'desc_tip' => true,
    10             'custom_attributes' => array( 'required' => 'required' ),
    11             'class' => 'english_input',
    1210            'description' => __('Contains of only latin letters and -_ characters', 'skyroom'),
    1311        ]);
     
    1816            'value' => $title,
    1917            'desc_tip' => true,
    20             'custom_attributes' => array( 'required' => 'required' ),
    2118            'description' => __('Title of counterpart room on skyroom', 'skyroom'),
    2219        ]);
     
    2522            'id' => '_skyroom_capacity',
    2623            'label' => __('Room Capacity', 'skyroom'),
    27             'type' => 'number',
    28             'custom_attributes' => array( 'required' => 'required' , 'min' => 1),
    2924            'value' => $capacity,
    3025        ]);
Note: See TracChangeset for help on using the changeset viewer.