diff --git a/app/dist/bundle.js b/app/dist/bundle.js index c659ee2e..b70d9ba9 100644 --- a/app/dist/bundle.js +++ b/app/dist/bundle.js @@ -116,7 +116,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \***********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var Components_Content_Levels_Levels_LevelsNavItem__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Components/Content/Levels/Levels/LevelsNavItem */ \"./src/Components/Content/Levels/Levels/LevelsNavItem.js\");\n/* harmony import */ var Enums_LevelsNavItemType__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Enums/LevelsNavItemType */ \"./src/Enums/LevelsNavItemType.js\");\n\n\n\nfunction LevelsNav(_ref) {\n let {\n activeItem,\n setActiveItem\n } = _ref;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"levels-nav\"\n }, [{\n text: 'Přiřazené stránky a přízpěvky',\n key: Enums_LevelsNavItemType__WEBPACK_IMPORTED_MODULE_2__.LevelsNavItemType.PAGES\n }, {\n text: 'E-maily',\n key: Enums_LevelsNavItemType__WEBPACK_IMPORTED_MODULE_2__.LevelsNavItemType.EMAILS\n }, {\n text: 'Servisní stránky',\n key: Enums_LevelsNavItemType__WEBPACK_IMPORTED_MODULE_2__.LevelsNavItemType.SERVICE_PAGES\n }, {\n text: 'Uvolňování obsahu',\n key: Enums_LevelsNavItemType__WEBPACK_IMPORTED_MODULE_2__.LevelsNavItemType.UNLOCKING\n }].map(item => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Components_Content_Levels_Levels_LevelsNavItem__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n key: item.key,\n text: item.text,\n selected: item.key === activeItem,\n onClick: () => {\n setActiveItem(item.key);\n }\n })));\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (LevelsNav);\n\n//# sourceURL=webpack://app/./src/Components/Content/Levels/Levels/LevelsNav.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var Components_Content_Levels_Levels_LevelsNavItem__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Components/Content/Levels/Levels/LevelsNavItem */ \"./src/Components/Content/Levels/Levels/LevelsNavItem.js\");\n/* harmony import */ var Enums_LevelsNavItemType__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Enums/LevelsNavItemType */ \"./src/Enums/LevelsNavItemType.js\");\n\n\n\nfunction LevelsNav(_ref) {\n let {\n activeItem,\n setActiveItem\n } = _ref;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"levels-nav\"\n }, [{\n text: 'Přiřazené stránky a příspěvky',\n key: Enums_LevelsNavItemType__WEBPACK_IMPORTED_MODULE_2__.LevelsNavItemType.PAGES\n }, {\n text: 'E-maily',\n key: Enums_LevelsNavItemType__WEBPACK_IMPORTED_MODULE_2__.LevelsNavItemType.EMAILS\n }, {\n text: 'Servisní stránky',\n key: Enums_LevelsNavItemType__WEBPACK_IMPORTED_MODULE_2__.LevelsNavItemType.SERVICE_PAGES\n }, {\n text: 'Uvolňování obsahu',\n key: Enums_LevelsNavItemType__WEBPACK_IMPORTED_MODULE_2__.LevelsNavItemType.UNLOCKING\n }].map(item => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Components_Content_Levels_Levels_LevelsNavItem__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n key: item.key,\n text: item.text,\n selected: item.key === activeItem,\n onClick: () => {\n setActiveItem(item.key);\n }\n })));\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (LevelsNav);\n\n//# sourceURL=webpack://app/./src/Components/Content/Levels/Levels/LevelsNav.js?"); /***/ }), diff --git a/app/src/Components/Content/Levels/Levels/LevelsNav.js b/app/src/Components/Content/Levels/Levels/LevelsNav.js index 6fe3d8c3..320b0942 100644 --- a/app/src/Components/Content/Levels/Levels/LevelsNav.js +++ b/app/src/Components/Content/Levels/Levels/LevelsNav.js @@ -6,7 +6,7 @@ function LevelsNav({activeItem, setActiveItem}) { return (
{ [ - {text: 'Přiřazené stránky a přízpěvky', key: LevelsNavItemType.PAGES}, + {text: 'Přiřazené stránky a příspěvky', key: LevelsNavItemType.PAGES}, {text: 'E-maily', key: LevelsNavItemType.EMAILS}, {text: 'Servisní stránky', key: LevelsNavItemType.SERVICE_PAGES}, {text: 'Uvolňování obsahu', key: LevelsNavItemType.UNLOCKING}, diff --git a/fapi-member.php b/fapi-member.php index eecbfc7b..c806d398 100644 --- a/fapi-member.php +++ b/fapi-member.php @@ -14,7 +14,7 @@ * Plugin Name: FAPI Member * Plugin URI: https://fapi.cz/ * Description: Plugin FAPI pro jednoduchou správu členských sekcí na webu. - * Version: 2.2.4 + * Version: 2.2.6 * Requires at least: 5.9 * Requires PHP: 8.1 * Author: FAPI Business s.r.o. @@ -29,7 +29,7 @@ require __DIR__ . '/src/Elementor/fapi-member.php'; require __DIR__ . '/src/Utils/functions.php'; -define('FAPI_MEMBER_PLUGIN_VERSION', '2.2.4'); +define('FAPI_MEMBER_PLUGIN_VERSION', '2.2.6'); $FapiPlugin = new FapiMemberPlugin(); diff --git a/readme.txt b/readme.txt index 3922988a..85f2aa95 100644 --- a/readme.txt +++ b/readme.txt @@ -5,7 +5,7 @@ Requires at least: 5.9 Tested up to: 6.4 Requires PHP: 8.1 License: GPLv2 or later -Stable tag: 2.2.4 +Stable tag: 2.2.6 Plugin FAPI pro jednoduchou správu členských sekcí na webu. @@ -26,6 +26,9 @@ Ohodnotit tento plugin můžete na stránkách [WordPress](https://wordpress.org == Changelog == += 2.2.6 = +* Added link to FAPI Member section settings in users table and user profile + = 2.2.4 = * Allow seamless migration from the SimpleShop plugin to FAPI Member diff --git a/src/Bootstrap.php b/src/Bootstrap.php index fba63711..db876917 100644 --- a/src/Bootstrap.php +++ b/src/Bootstrap.php @@ -134,6 +134,7 @@ private function addHooks(): void { $this->addInitHooks(); $this->addAdminHooks(); + $this->registerUserFapiMemberTableColumn(); add_action('wp_enqueue_scripts', [$this, 'addPublicScripts']); @@ -579,4 +580,12 @@ private function initializeMembershipChanges(): void } } + public function registerUserFapiMemberTableColumn(): void + { + add_filter('manage_users_columns', [$this->elementService, 'addUserColumn']); + add_action('manage_users_custom_column', [$this->elementService, 'showUserColumnContent'], 10, 3); + add_action('show_user_profile', [$this->elementService, 'addUserProfileSection']); + add_action('edit_user_profile', [$this->elementService, 'addUserProfileSection']); + } + } diff --git a/src/Service/ElementService.php b/src/Service/ElementService.php index b15835c3..cc63f3d0 100644 --- a/src/Service/ElementService.php +++ b/src/Service/ElementService.php @@ -143,4 +143,44 @@ public static function renderCheckbox(MemberSection|MemberLevel $level, array $l return '' . $level->getName() . '
'; } + public function addUserColumn($columns) + { + if (isset($columns['posts'])) { + $posts = $columns['posts']; + unset($columns['posts']); + } + + $columns['fapi_member_edit'] = __('Upravit ve FAPI Member', 'fapi-member'); + + if (isset($posts)) { + $columns['posts'] = $posts; + } + + return $columns; + } + + public function showUserColumnContent($value, $columnName, $userId) + { + if ('fapi_member_edit' == $columnName) { + $editUrl = admin_url('admin.php?page=fapi-member-settings&fm-page=members&member=' . $userId); + return '' . __('Upravit ve FAPI Member', 'fapi-member') . ''; + } + + return $value; + } + + public function addUserProfileSection($user) + { + if (!current_user_can('edit_users')) { + return; + } + + $editUrl = admin_url('admin.php?page=fapi-member-settings&fm-page=members&member=' . $user->ID); + + echo '

' . __('FAPI Member', 'fapi-member') . '

'; + echo '
'.__('Nastavení členských sekcí').''; + echo '' . __('Upravit ve FAPI Member', 'fapi-member') . ''; + echo '
'; + } + }