Changeset 2340792
- Timestamp:
- 07/15/2020 08:03:38 AM (5 years ago)
- Location:
- skyroom-wp/trunk
- Files:
-
- 1 deleted
- 24 edited
-
admin/js/script.js (modified) (1 diff)
-
config.php (modified) (1 diff)
-
languages/skyroom-fa_IR.mo (modified) (previous)
-
languages/skyroom-fa_IR.po (modified) (11 diffs)
-
languages/skyroom.pot (modified) (2 diffs)
-
skyroom.php (modified) (2 diffs)
-
src/Skyroom/Adapter/WooCommerceAdapter.php (modified) (8 diffs)
-
src/Skyroom/Api/Client.php (modified) (2 diffs)
-
src/Skyroom/Api/URL.php (modified) (1 diff)
-
src/Skyroom/Entity/Event.php (modified) (1 diff)
-
src/Skyroom/Menu/SettingSubmenu.php (modified) (3 diffs)
-
src/Skyroom/Menu/UserSubmenu.php (modified) (2 diffs)
-
src/Skyroom/Plugin.php (modified) (1 diff)
-
src/Skyroom/Repository/RoomRepository.php (modified) (2 diffs)
-
src/Skyroom/Repository/UserRepository.php (modified) (6 diffs)
-
src/Skyroom/Shortcoes/UserEnrollmentShortcode.php (modified) (4 diffs)
-
src/Skyroom/Tables/RoomsTable.php (modified) (1 diff)
-
src/Skyroom/Tables/UsersTable.php (modified) (7 diffs)
-
src/Skyroom/Tasks/SyncTask.php (modified) (1 diff)
-
src/Skyroom/WooCommerce/SkyroomProductRegistrar.php (modified) (2 diffs)
-
src/Skyroom/WooCommerce/SkyroomWooMyAccount.php (deleted)
-
views/enrollments.php (modified) (3 diffs)
-
views/settings.php (modified) (3 diffs)
-
views/woocommerce-add-to-cart.php (modified) (1 diff)
-
views/woocommerce-product-tab.php (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
skyroom-wp/trunk/admin/js/script.js
r2340745 r2340792 138 138 // Show woocommerce metabox general tab for skyroom product type 139 139 $('.options_group.pricing').addClass('show_if_skyroom'); 140 141 // check room name input142 $('.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 });150 140 }); -
skyroom-wp/trunk/config.php
r2340745 r2340792 39 39 $parameters = [ 40 40 'name' => 'skyroom', 41 'version' => ' 2.0.0',41 'version' => '1.4.5', 42 42 'plugin.path' => plugin_dir_path(__FILE__), 43 43 'plugin.url' => plugin_dir_url(__FILE__), -
skyroom-wp/trunk/languages/skyroom-fa_IR.po
r2340772 r2340792 5 5 "Project-Id-Version: Skyroom 1.0.0\n" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/skyroom\n" 7 "POT-Creation-Date: 2020-0 6-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" 9 9 "Last-Translator: \n" 10 10 "Language-Team: \n" … … 14 14 "Content-Transfer-Encoding: 8bit\n" 15 15 "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" 18 17 "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" 20 23 21 24 #: src/Skyroom/Adapter/WooCommerceAdapter.php:268 … … 159 162 "start working." 160 163 msgstr "" 161 "پلاگین <strong>اسکایروم</strong> با موفقیت فعال شد اما هنوز پیکربندی نشدهاست. "162 " لطفا به صفحه <a href=\"%s\">تنظیمات اسکایروم</a> بروید و پیکربندی را انجام دهید"163 " تا شروعبه کار کند."164 "پلاگین <strong>اسکایروم</strong> با موفقیت فعال شد اما هنوز پیکربندی نشدهاست. لطفا " 165 "به صفحه <a href=\"%s\">تنظیمات اسکایروم</a> بروید و پیکربندی را انجام دهید تا شروع " 166 "به کار کند." 164 167 165 168 #: src/Skyroom/Repository/UserRepository.php:133 … … 280 283 #, php-format 281 284 msgid "%s comment" 282 msgstr "%s دیدگاه" 285 msgid_plural "%s comments" 286 msgstr[0] "%s دیدگاه" 287 msgstr[1] "%s دیدگاه" 283 288 284 289 #: src/Skyroom/Tables/WPListTable.php:690 285 290 #, php-format 286 291 msgid "%s approved comment" 287 msgstr "%s دیدگاه تایید شده" 292 msgid_plural "%s approved comments" 293 msgstr[0] "%s دیدگاه تایید شده" 294 msgstr[1] "%s دیدگاه تایید شده" 288 295 289 296 #: src/Skyroom/Tables/WPListTable.php:692 290 297 #, php-format 291 298 msgid "%s pending comment" 292 msgstr "%s دیدگاه منتظر تایید" 299 msgid_plural "%s pending comments" 300 msgstr[0] "%s دیدگاه منتظر تایید" 301 msgstr[1] "%s دیدگاه منتظر تایید" 293 302 294 303 #: src/Skyroom/Tables/WPListTable.php:698 src/Skyroom/Tables/WPListTable.php:711 … … 308 317 #, php-format 309 318 msgid "%s item" 310 msgstr "%s مورد" 319 msgid_plural "%s items" 320 msgstr[0] "%s مورد" 321 msgstr[1] "%s مورد" 311 322 312 323 #: src/Skyroom/Tables/WPListTable.php:843 … … 324 335 #: src/Skyroom/Tables/WPListTable.php:872 325 336 #, php-format 337 msgctxt "paging" 326 338 msgid "%1$s of %2$s" 327 339 msgstr "%1$s از %2$s" … … 356 368 357 369 #: src/Skyroom/Tasks/SyncTask.php:171 370 #, php-format 358 371 msgid "Found one product" 359 msgstr "یک محصول پیدا شد" 372 msgid_plural "Found %d products" 373 msgstr[0] "یک محصول پیدا شد" 374 msgstr[1] "%d محصول پیدا شد" 360 375 361 376 #: src/Skyroom/Tasks/SyncTask.php:181 377 #, php-format 362 378 msgid "Syncing one product with server..." 363 msgstr "در حال همگامسازی یک محصول با سرور..." 379 msgid_plural "Syncing %d products with server..." 380 msgstr[0] "در حال همگامسازی یک محصول با سرور..." 381 msgstr[1] "در حال همگامسازی %d محصول با سرور..." 364 382 365 383 #: src/Skyroom/Tasks/SyncTask.php:198 … … 381 399 382 400 #: src/Skyroom/Tasks/SyncTask.php:224 401 #, php-format 383 402 msgid "Found one enrollment" 384 msgstr "یک ثبتنام پیدا شد" 403 msgid_plural "Found %d enrollments" 404 msgstr[0] "یک ثبتنام پیدا شد" 405 msgstr[1] "%d ثبتنام پیدا شد" 385 406 386 407 #: src/Skyroom/Tasks/SyncTask.php:234 408 #, php-format 387 409 msgid "Syncing one enrollment with server..." 388 msgstr "در حال همگامسازی یک ثبتنامها با سرور..." 410 msgid_plural "Syncing %d enrollments with server..." 411 msgstr[0] "در حال همگامسازی یک ثبتنام با سرور..." 412 msgstr[1] "در حال همگامسازی %d ثبتنام با سرور..." 389 413 390 414 #: src/Skyroom/Tasks/SyncTask.php:294 … … 401 425 #, php-format 402 426 msgid "%d enrollment synced with server successfully" 403 msgstr "%d ثبتنام با موفقیت با سرور همگامسازی شد" 427 msgid_plural "%d enrollments synced with server successfully" 428 msgstr[0] "یک ثبتنام با موفقیت با سرور همگامسازی شد" 429 msgstr[1] "%d ثبتنام با موفقیت با سرور همگامسازی شدند" 404 430 405 431 #: src/Skyroom/Tasks/SyncTask.php:413 … … 510 536 "database." 511 537 msgstr "" 512 "پاکسازی همه اطلاعات اسکایروم (شناسه کاربران، شناسه اتاقها و ثبتنامها) از "513 " دیتابیسوردپرس."538 "پاکسازی همه اطلاعات اسکایروم (شناسه کاربران، شناسه اتاقها و ثبتنامها) از دیتابیس " 539 "وردپرس." 514 540 515 541 #: views/maintenance.php:52 … … 587 613 588 614 #: views/woocommerce-skyroom-order.php:3 589 msgid "Username:"590 msgstr "نام کاربری:"591 592 #: views/woocommerce-skyroom-order.php:4593 msgid "Not Registred:"594 msgstr "ثبت نشده"595 596 #: views/woocommerce-skyroom-order.php:3597 615 msgid "" 598 616 "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 " youshould 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)" 601 619 msgstr "" 602 620 "ثبتنام شما در دورههای خریداری شده با موفقیت انجام شد. برای شرکت در کلاسها در " 603 "زمانهای اعلام شده وارد صفحه دوره شده و روی دکمه 'ورود به کلاس' کلیک نمایید. " 604 "(لطفا توجه کنید که باید وارد سایت شده باشید)" 621 "زمانهای اعلام شده وارد صفحه دوره شده و روی دکمه 'ورود به کلاس' کلیک نمایید. (لطفا " 622 "توجه کنید که باید وارد سایت شده باشید)" 623 624 #~ msgid "Skyroom Synchronization" 625 #~ msgstr "همگامسازی اسکایروم" 626 627 #~ msgid "Synchronize" 628 #~ msgstr "همگامسازی" 605 629 606 630 #~ msgid "Every %d Minutes" 607 631 #~ msgstr "هر %d دقیقه" 608 609 #~ msgid "Skyroom Synchronization"610 #~ msgstr "همگامسازی اسکایروم"611 612 #~ msgid "Synchronize"613 #~ msgstr "همگامسازی"614 632 615 633 #~ msgid "Syncing users with server..." -
skyroom-wp/trunk/languages/skyroom.pot
r2340772 r2340792 13 13 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 14 14 "Language-Team: LANGUAGE <[email protected]>\n" 15 "Plural-Forms: nplurals=1; plural=0;\n" 15 16 "X-Generator: Poedit 2.2\n" 16 17 "X-Poedit-SourceCharset: UTF-8\n" … … 584 585 585 586 #: views/woocommerce-skyroom-order.php:3 586 msgid "Username:"587 msgstr ""588 589 #: views/woocommerce-skyroom-order.php:4590 msgid "Not Registred:"591 msgstr ""592 593 #: views/woocommerce-skyroom-order.php:3594 587 msgid "" 595 588 "You successfully enrolled in purchased courses. To attend classes, on " -
skyroom-wp/trunk/skyroom.php
r2340772 r2340792 7 7 * Plugin URI: https://skyroom.online/pages/wordpress-integration 8 8 * Description: A plugin to integrate skyroom with your wordpress site 9 * Version: 2.0.09 * Version: 1.4.5 10 10 * Author: Skyroom 11 11 * Author URI: https://skyroom.online/ … … 27 27 // Boot plugin 28 28 add_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 4 4 5 5 use DownShift\WordPress\EventEmitterInterface; 6 use Skyroom\Api\Client;7 6 use Skyroom\Entity\Enrollment; 8 7 use Skyroom\Entity\Event; … … 15 14 use Skyroom\WooCommerce\SkyroomProduct; 16 15 use Skyroom\WooCommerce\SkyroomProductRegistrar; 17 use Skyroom\WooCommerce\SkyroomWooMyAccount;18 use function DI\string;19 16 20 17 /** … … 45 42 private $viewer; 46 43 47 /**48 * @var Client49 */50 private $client;51 52 44 public function __construct( 53 45 EventEmitterInterface $eventEmitter, 54 46 DICallableFactory $callableFactory, 55 47 SkyroomProductRegistrar $productRegistrar, 56 SkyroomWooMyAccount $skyroomWooMyAccount, 57 Viewer $viewer, 58 Client $client 48 Viewer $viewer 59 49 ) 60 50 { … … 62 52 $this->callableFactory = $callableFactory; 63 53 $this->productRegistrar = $productRegistrar; 64 $this->skyroomWooMyAccount = $skyroomWooMyAccount;65 54 $this->viewer = $viewer; 66 $this->client = $client;67 55 } 68 56 … … 74 62 // Register custom product type 75 63 $this->productRegistrar->register(); 76 77 // Setup Woocommerce My Account Menu78 $this->skyroomWooMyAccount->setup();79 64 80 65 // Show add-to-card btn … … 379 364 } 380 365 366 $userRepository->addUserToRoom($user, $product->get_skyroom_id(), $orderId); 367 381 368 // Store event 382 369 $info = [ … … 435 422 function addToCart(Viewer $viewer) 436 423 { 437 $context = $this->addToCartLink(); 424 global $product; 425 426 $context = [ 427 'product' => $product, 428 'user_id' => get_current_user_id(), 429 ]; 438 430 439 431 $viewer->view('woocommerce-add-to-cart.php', $context); … … 498 490 ]; 499 491 } 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' => 0515 ];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 }532 492 } -
skyroom-wp/trunk/src/Skyroom/Api/Client.php
r2340745 r2340792 43 43 * 44 44 * @param string $action Requested action 45 * @param array $params Request parameters45 * @param array $params Request parameters 46 46 * 47 * @ return mixed Webservice result47 * @throws ConnectionNotEstablishedException 48 48 * @throws InvalidResponseStatusException 49 49 * @throws RequestFailedException 50 50 * 51 * @ throws ConnectionNotEstablishedException51 * @return mixed Webservice result 52 52 */ 53 53 public function request($action, $params = null) 54 54 { 55 $ data= $this->URL->toString();55 $url = $this->URL->toString(); 56 56 $body = []; 57 57 $body['action'] = $action; … … 59 59 $body['params'] = $params; 60 60 } 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 }86 61 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 ]; 108 69 109 70 $response = wp_remote_post($url, $args); 110 71 $status = wp_remote_retrieve_response_code($response); 111 112 113 72 if (empty($status)) { 114 73 throw new ConnectionNotEstablishedException(); 115 74 } 116 75 117 if ($status < 200 || $status > 299) {76 if ($status !== 200) { 118 77 throw new InvalidResponseStatusException(); 119 78 } 120 121 79 122 80 $body = wp_remote_retrieve_body($response); 123 81 $result = json_decode($body); 124 82 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(); 127 87 } 128 88 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); 131 91 } 132 92 133 return $result-> items;93 return $result->result; 134 94 } 135 95 } -
skyroom-wp/trunk/src/Skyroom/Api/URL.php
r2340745 r2340792 39 39 public function toString() 40 40 { 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; 44 42 } 45 43 } -
skyroom-wp/trunk/src/Skyroom/Entity/Event.php
r2340745 r2340792 94 94 return $this->createdAt; 95 95 } 96 97 96 } -
skyroom-wp/trunk/src/Skyroom/Menu/SettingSubmenu.php
r2340745 r2340792 52 52 $error = ''; 53 53 $success = null; 54 $username = null;55 54 56 55 // Handle form submit 57 56 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']; 69 60 70 61 // Change Client url object … … 87 78 $skyroomApiKey = get_option('skyroom_api_key'); 88 79 $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 }99 80 } 100 81 … … 105 86 'skyroomApiKey' => $skyroomApiKey, 106 87 'skyroomIntegratedPlugin' => $skyroomIntegratedPlugin, 107 'username' => $username,108 88 ]; 109 89 $this->viewer->view('settings.php', $context); -
skyroom-wp/trunk/src/Skyroom/Menu/UserSubmenu.php
r2340745 r2340792 52 52 $users = $this->repository->getUsers(); 53 53 $table = new UsersTable($users); 54 55 54 $table->prepare_items(); 56 55 … … 58 57 'table' => $table, 59 58 ]; 60 // print_r($context);61 // die(1);62 59 $this->viewer->view('users.php', $context); 63 60 -
skyroom-wp/trunk/src/Skyroom/Plugin.php
r2340745 r2340792 9 9 use DownShift\WordPress\EventEmitterInterface; 10 10 use Skyroom\Adapter\PluginAdapterInterface; 11 use Skyroom\Controller\MaintenanceController; 11 12 use Skyroom\Controller\SkyroomController; 12 use Skyroom\Controller\MaintenanceController;13 use Skyroom\Entity\Event;14 use Skyroom\Factory\DICallableFactory;15 13 use Skyroom\Menu\EventSubmenu; 16 14 use Skyroom\Menu\MainMenu; 15 use Skyroom\Menu\MaintenanceSubmenu; 17 16 use Skyroom\Menu\RoomSubmenu; 18 17 use Skyroom\Menu\SettingSubmenu; 19 use Skyroom\Menu\MaintenanceSubmenu;20 18 use Skyroom\Menu\UserSubmenu; 21 use Skyroom\Repository\EventRepository;22 use Skyroom\Repository\UserRepository;23 19 use Skyroom\Shortcoes\UserEnrollmentShortcode; 24 20 use Skyroom\Tasks\SyncDataTaskRunner; -
skyroom-wp/trunk/src/Skyroom/Repository/RoomRepository.php
r2340745 r2340792 55 55 }, $roomsArray); 56 56 57 58 57 $prods = $this->pluginAdapter->getProducts($ids); 59 60 58 $products = []; 61 59 foreach ($prods as $product) { … … 68 66 $rooms[] = new Room($room, $product); 69 67 } 68 70 69 return $rooms; 71 70 } -
skyroom-wp/trunk/src/Skyroom/Repository/UserRepository.php
r2340745 r2340792 10 10 use Skyroom\Exception\InvalidResponseStatusException; 11 11 use Skyroom\Exception\RequestFailedException; 12 use function DI\object;13 12 14 13 /** … … 38 37 * @param PluginAdapterInterface $pluginAdapter 39 38 */ 40 public function __construct(Client $client, EventRepository $eventRepository, PluginAdapterInterface $pluginAdapter , EventRepository $event)39 public function __construct(Client $client, EventRepository $eventRepository, PluginAdapterInterface $pluginAdapter) 41 40 { 42 41 $this->client = $client; 43 42 $this->pluginAdapter = $pluginAdapter; 44 $this->event = $event;45 43 } 46 44 … … 56 54 public function getUsers() 57 55 { 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'); 77 57 $ids = array_map(function ($user) { 78 58 return $user->id; 79 }, $usersArray Final);59 }, $usersArray); 80 60 81 61 $wpUsersArray = get_users([ … … 86 66 87 67 $wpUsers = []; 88 $res = [];89 68 foreach ($wpUsersArray as $wpUser) { 90 69 $wpUsers[$this->getSkyroomId($wpUser->ID)] = $wpUser; 91 $res [] = $wpUser->ID; 92 } 93 70 } 94 71 95 72 $users = []; 96 foreach ($usersArray Finalas $user) {73 foreach ($usersArray as $user) { 97 74 $users[] = new User($user, isset($wpUsers[$user->id]) ? $wpUsers[$user->id] : null); 98 75 } 76 99 77 return $users; 100 78 } … … 111 89 public function addUser($user) 112 90 { 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); 114 101 } 115 102 … … 209 196 ] 210 197 ); 198 211 199 $this->pluginAdapter->setEnrollmentSynced($user->ID, $postId); 212 200 } -
skyroom-wp/trunk/src/Skyroom/Shortcoes/UserEnrollmentShortcode.php
r2340745 r2340792 4 4 5 5 use Skyroom\Adapter\PluginAdapterInterface; 6 use Skyroom\Api\Client;7 6 use Skyroom\Repository\UserRepository; 8 7 use Skyroom\Util\Viewer; … … 26 25 27 26 /** 28 * @var Client29 */30 private $client;31 32 /**33 27 * UserEnrollmentShortcode constructor 34 28 * … … 36 30 * @param Viewer $viewer 37 31 */ 38 public function __construct(PluginAdapterInterface $pluginAdapter, Viewer $viewer , Client $client)32 public function __construct(PluginAdapterInterface $pluginAdapter, Viewer $viewer) 39 33 { 40 34 $this->pluginAdapter = $pluginAdapter; 41 35 $this->viewer = $viewer; 42 $this->client = $client;43 36 } 44 37 … … 46 39 { 47 40 $user = wp_get_current_user(); 48 $error = '';49 41 if ($user->exists()) { 50 $url = null;51 $id = get_current_user_id();52 $user = get_userdata($id);53 42 $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); 84 44 85 45 $this->viewer->view('enrollments.php', $context); -
skyroom-wp/trunk/src/Skyroom/Tables/RoomsTable.php
r2340745 r2340792 122 122 'post' => $this->postTypeString, 123 123 'name' => __('Name', 'skyroom'), 124 // 'status' => __('Status', 'skyroom'), 125 // 'delete' => __('Delete', 'skyroom'), 124 'status' => __('Status', 'skyroom'), 126 125 ); 127 126 } -
skyroom-wp/trunk/src/Skyroom/Tables/UsersTable.php
r2340745 r2340792 20 20 * RoomsTable constructor. 21 21 * 22 * @param array $users Table items22 * @param array $users Table items 23 23 */ 24 24 public function __construct($users) … … 42 42 $sortable = array(); 43 43 $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); 49 45 $this->set_pagination_args(array( 50 46 'total_items' => $usersCount, … … 57 53 * General method for rendering columns 58 54 * 59 * @param User$item60 * @param string $column_name55 * @param User $item 56 * @param string $column_name 61 57 * 62 58 * @return string Rendered item … … 82 78 * Render nickname column 83 79 * 84 * @param User $item Row data80 * @param User $item Row data 85 81 * 86 82 * @return string Rendered item … … 89 85 { 90 86 if (empty($wpUser = $item->getWpUser())) { 91 return '<strong>' . $item->getNickname() .'</strong>';87 return '<strong>'.$item->getNickname().'</strong>'; 92 88 } 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>'; 94 90 } 95 91 } … … 98 94 * Render wp user_login column 99 95 * 100 * @param User $item Row data96 * @param User $item Row data 101 97 * 102 98 * @return string Rendered item … … 121 117 return array( 122 118 'nickname' => __('Nickname', 'skyroom'), 119 'username' => __('Username', 'skyroom'), 123 120 'wp_user_login' => __('Wordpress username', 'skyroom'), 124 // 'product' => __('Product', 'skyroom'),125 121 'status' => __('Status', 'skyroom'), 126 122 ); -
skyroom-wp/trunk/src/Skyroom/Tasks/SyncTask.php
r2340745 r2340792 63 63 $this->tasks = [ 64 64 'syncRooms', 65 //'syncEnrolls'65 'syncEnrolls' 66 66 ]; 67 67 } -
skyroom-wp/trunk/src/Skyroom/WooCommerce/SkyroomProductRegistrar.php
r2340745 r2340792 132 132 public function processMeta($postId, Client $client) 133 133 { 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; 144 137 145 138 $product = wc_get_product($postId); … … 174 167 $totalSales = get_post_meta($postId, 'total_sales', true); 175 168 176 177 169 update_post_meta($postId, '_skyroom_name', $room->name); 178 170 update_post_meta($postId, '_skyroom_title', $room->title); -
skyroom-wp/trunk/views/enrollments.php
r2340745 r2340792 3 3 defined('WPINC') || die; 4 4 5 if (empty($context)) : ?> 5 6 if (empty($enrollments)) : ?> 6 7 <p class="<?php echo apply_filters('skyroom_no_enrollment_class', 'no-enrollments') ?>"> 7 8 <strong> … … 9 10 </strong> 10 11 </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>17 12 <?php else: ?> 18 13 <?php do_action('skyroom_before_enrollments_table') ?> … … 29 24 </thead> 30 25 <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) : ?> 35 27 <tr> 36 28 <td><?php echo $enrollment->getProduct()->getTitle() ?></td> 37 29 <td><?php echo date_i18n('j F Y', $enrollment->getEnrollTime()) ?></td> 38 30 <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"> 40 32 <?php echo apply_filters('skyroom_enrollments_enter_class_text', __('Enter class', 'skyroom')) ?> 41 33 </a> 42 34 </td> 43 35 </tr> 44 <?php }endforeach; ?>36 <?php endforeach; ?> 45 37 </tbody> 46 38 </table> -
skyroom-wp/trunk/views/settings.php
r2340745 r2340792 24 24 <input type="text" name="skyroom_site_url" id="skyroom_site_url" class="regular-text ltr" 25 25 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')) ?>"> 27 27 <p id="skyroom_site_url_desc"> 28 28 </td> … … 34 34 <td> 35 35 <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) : '') ?>"> 37 37 <p class="description"><?php _e('API key should be provided to you by skyroom support', 'skyroom') ?></p> 38 38 </td> … … 43 43 </th> 44 44 <td> 45 <select name="skyroom_integrated_plugin" id="skyroom_integrated_plugin" required>45 <select name="skyroom_integrated_plugin" id="skyroom_integrated_plugin"> 46 46 <option value="woocommerce"<?php echo $skyroomIntegratedPlugin === 'wocommerce' ? ' selected' : '' ?>> 47 47 <?php _e('WooCommerce', 'skyroom') ?> 48 48 </option> 49 49 </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')) ?>58 50 </td> 59 51 </tr> -
skyroom-wp/trunk/views/woocommerce-add-to-cart.php
r2340745 r2340792 28 28 <?php elseif ($purchased) : ?> 29 29 <?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> 39 33 <?php do_action('skyroom_after_enter_room_button') ?> 40 34 <?php else : ?> -
skyroom-wp/trunk/views/woocommerce-product-tab.php
r2340745 r2340792 8 8 'value' => $name, 9 9 'desc_tip' => true, 10 'custom_attributes' => array( 'required' => 'required' ),11 'class' => 'english_input',12 10 'description' => __('Contains of only latin letters and -_ characters', 'skyroom'), 13 11 ]); … … 18 16 'value' => $title, 19 17 'desc_tip' => true, 20 'custom_attributes' => array( 'required' => 'required' ),21 18 'description' => __('Title of counterpart room on skyroom', 'skyroom'), 22 19 ]); … … 25 22 'id' => '_skyroom_capacity', 26 23 'label' => __('Room Capacity', 'skyroom'), 27 'type' => 'number',28 'custom_attributes' => array( 'required' => 'required' , 'min' => 1),29 24 'value' => $capacity, 30 25 ]);
Note: See TracChangeset
for help on using the changeset viewer.