Нема описа

class-config.php 36KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810
  1. <?php
  2. namespace um;
  3. if ( ! defined( 'ABSPATH' ) ) exit;
  4. if ( ! class_exists( 'um\Config' ) ) {
  5. /**
  6. * Class Config
  7. *
  8. * Class with global variables for UM
  9. *
  10. * @package um
  11. */
  12. class Config {
  13. /**
  14. * @var array
  15. */
  16. var $core_forms;
  17. /**
  18. * @var array
  19. */
  20. var $core_directories;
  21. /**
  22. * @var mixed|void
  23. */
  24. var $core_pages;
  25. /**
  26. * @var array
  27. */
  28. var $core_directory_meta = array();
  29. /**
  30. * @var array
  31. */
  32. var $core_global_meta_all;
  33. /**
  34. * @var mixed|void
  35. */
  36. var $core_form_meta_all;
  37. /**
  38. * @var array
  39. */
  40. var $core_form_meta = array();
  41. /**
  42. * @var
  43. */
  44. var $perms;
  45. /**
  46. * @var
  47. */
  48. var $nonadmin_perms;
  49. /**
  50. * @var mixed|void
  51. */
  52. var $email_notifications;
  53. /**
  54. * @var mixed|void
  55. */
  56. var $settings_defaults;
  57. /**
  58. * @var array
  59. */
  60. var $permalinks;
  61. /**
  62. * Config constructor.
  63. */
  64. function __construct() {
  65. $this->core_forms = array(
  66. 'register',
  67. 'login',
  68. 'profile',
  69. );
  70. $this->core_directories = array(
  71. 'members',
  72. );
  73. /**
  74. * UM hook
  75. *
  76. * @type filter
  77. * @title um_core_pages
  78. * @description Extend UM core pages
  79. * @input_vars
  80. * [{"var":"$pages","type":"array","desc":"UM core pages"}]
  81. * @change_log
  82. * ["Since: 2.0"]
  83. * @usage
  84. * <?php add_filter( 'um_core_pages', 'function_name', 10, 1 ); ?>
  85. * @example
  86. * <?php
  87. * add_filter( 'um_core_pages', 'my_core_pages', 10, 1 );
  88. * function my_core_pages( $pages ) {
  89. * // your code here
  90. * $pages['my_page_key'] = array( 'title' => __( 'My Page Title', 'my-translate-key' ) );
  91. * return $pages;
  92. * }
  93. * ?>
  94. */
  95. $this->core_pages = apply_filters( 'um_core_pages', array(
  96. 'user' => array( 'title' => __( 'User', 'ultimate-member' ) ),
  97. 'login' => array( 'title' => __( 'Login', 'ultimate-member' ) ),
  98. 'register' => array( 'title' => __( 'Register', 'ultimate-member' ) ),
  99. 'members' => array( 'title' => __( 'Members', 'ultimate-member' ) ),
  100. 'logout' => array( 'title' => __( 'Logout', 'ultimate-member' ) ),
  101. 'account' => array( 'title' => __( 'Account', 'ultimate-member' ) ),
  102. 'password-reset' => array( 'title' => __( 'Password Reset', 'ultimate-member' ) ),
  103. ) );
  104. $this->core_directory_meta['members'] = array(
  105. '_um_core' => 'members',
  106. '_um_template' => 'members',
  107. '_um_mode' => 'directory',
  108. '_um_view_types' => array( 'grid' ),
  109. '_um_default_view' => 'grid',
  110. '_um_roles' => array(),
  111. '_um_has_profile_photo' => 0,
  112. '_um_has_cover_photo' => 0,
  113. '_um_show_these_users' => '',
  114. '_um_exclude_these_users' => '',
  115. '_um_sortby' => 'user_registered_desc',
  116. '_um_sortby_custom' => '',
  117. '_um_sortby_custom_label' => '',
  118. '_um_enable_sorting' => 0,
  119. '_um_sorting_fields' => array(),
  120. '_um_profile_photo' => '1',
  121. '_um_cover_photos' => '1',
  122. '_um_show_name' => '1',
  123. '_um_show_tagline' => 0,
  124. '_um_tagline_fields' => array(),
  125. '_um_show_userinfo' => 0,
  126. '_um_reveal_fields' => array(),
  127. '_um_show_social' => 0,
  128. '_um_userinfo_animate' => '1',
  129. '_um_search' => 0,
  130. '_um_roles_can_search' => array(),
  131. '_um_filters' => 0,
  132. '_um_roles_can_filter' => array(),
  133. '_um_search_fields' => array(),
  134. '_um_filters_expanded' => 0,
  135. '_um_filters_is_collapsible' => 1,
  136. '_um_search_filters' => array(),
  137. '_um_must_search' => 0,
  138. '_um_max_users' => '',
  139. '_um_profiles_per_page' => 12,
  140. '_um_profiles_per_page_mobile' => 6,
  141. '_um_directory_header' => __( '{total_users} Members', 'ultimate-member' ),
  142. '_um_directory_header_single' => __( '{total_users} Member', 'ultimate-member' ),
  143. '_um_directory_no_users' => __( 'We are sorry. We cannot find any users who match your search criteria.', 'ultimate-member' ),
  144. );
  145. $this->core_global_meta_all = array(
  146. '_um_primary_btn_color',
  147. '_um_primary_btn_hover',
  148. '_um_primary_btn_text',
  149. '_um_secondary_btn_color',
  150. '_um_secondary_btn_hover',
  151. '_um_secondary_btn_text',
  152. '_um_form_border',
  153. '_um_form_border_hover',
  154. '_um_form_bg_color',
  155. '_um_form_bg_color_focus',
  156. '_um_form_placeholder',
  157. '_um_form_icon_color',
  158. '_um_form_asterisk_color',
  159. '_um_form_field_label',
  160. '_um_form_text_color',
  161. '_um_active_color',
  162. '_um_help_tip_color',
  163. '_um_secondary_color',
  164. );
  165. /**
  166. * UM hook
  167. *
  168. * @type filter
  169. * @title um_core_form_meta_all
  170. * @description Extend UM forms meta keys
  171. * @input_vars
  172. * [{"var":"$meta","type":"array","desc":"UM forms meta"}]
  173. * @change_log
  174. * ["Since: 2.0"]
  175. * @usage
  176. * <?php add_filter( 'um_core_form_meta_all', 'function_name', 10, 1 ); ?>
  177. * @example
  178. * <?php
  179. * add_filter( 'um_core_form_meta_all', 'my_core_form_meta', 10, 1 );
  180. * function my_core_form_meta( $meta ) {
  181. * // your code here
  182. * $meta['my_meta_key'] = 'my_meta_value';
  183. * return $meta;
  184. * }
  185. * ?>
  186. */
  187. $this->core_form_meta_all = apply_filters( 'um_core_form_meta_all', array(
  188. /*Profile Form*/
  189. '_um_profile_show_name' => 1,
  190. '_um_profile_show_social_links' => 0,
  191. '_um_profile_show_bio' => 1,
  192. '_um_profile_bio_maxchars' => 180,
  193. '_um_profile_header_menu' => 'bc',
  194. '_um_profile_empty_text' => 1,
  195. '_um_profile_empty_text_emo' => 1,
  196. '_um_profile_role' => array(),
  197. '_um_profile_template' => 'profile',
  198. '_um_profile_max_width' => '1000px',
  199. '_um_profile_area_max_width' => '600px',
  200. '_um_profile_align' => 'center',
  201. '_um_profile_icons' => 'label',
  202. '_um_profile_disable_photo_upload' => 0,
  203. '_um_profile_photosize' => '190',
  204. '_um_profile_cover_enabled' => 1,
  205. '_um_profile_coversize' => 'original',
  206. '_um_profile_cover_ratio' => '2.7:1',
  207. '_um_profile_photocorner' => '1',
  208. '_um_profile_header_bg' => '',
  209. '_um_profile_primary_btn_word' => __( 'Update Profile', 'ultimate-member' ),
  210. '_um_profile_secondary_btn' => '1',
  211. '_um_profile_secondary_btn_word' => __( 'Cancel', 'ultimate-member' ),
  212. /*Registration Form*/
  213. '_um_register_role' => '0',
  214. '_um_register_template' => 'register',
  215. '_um_register_max_width' => '450px',
  216. '_um_register_align' => 'center',
  217. '_um_register_icons' => 'label',
  218. '_um_register_primary_btn_word' => __( 'Register', 'ultimate-member' ),
  219. '_um_register_secondary_btn' => 1,
  220. '_um_register_secondary_btn_word' => __( 'Login', 'ultimate-member' ),
  221. '_um_register_secondary_btn_url' => '',
  222. /*Login Form*/
  223. '_um_login_template' => 'login',
  224. '_um_login_max_width' => '450px',
  225. '_um_login_align' => 'center',
  226. '_um_login_icons' => 'label',
  227. '_um_login_primary_btn_word' => __( 'Login', 'ultimate-member' ),
  228. '_um_login_forgot_pass_link' => 1,
  229. '_um_login_show_rememberme' => 1,
  230. '_um_login_secondary_btn' => 1,
  231. '_um_login_secondary_btn_word' => __( 'Register', 'ultimate-member' ),
  232. '_um_login_secondary_btn_url' => '',
  233. /*Member Directory*/
  234. '_um_directory_template' => 'members',
  235. '_um_directory_header' => __( '{total_users} Members', 'ultimate-member' ),
  236. '_um_directory_header_single' => __( '{total_users} Member', 'ultimate-member' ),
  237. ) );
  238. $this->core_form_meta['register'] = array(
  239. '_um_custom_fields' => 'a:6:{s:10:"user_login";a:15:{s:5:"title";s:8:"Username";s:7:"metakey";s:10:"user_login";s:4:"type";s:4:"text";s:5:"label";s:8:"Username";s:8:"required";i:1;s:6:"public";i:1;s:8:"editable";i:0;s:8:"validate";s:15:"unique_username";s:9:"min_chars";i:3;s:9:"max_chars";i:24;s:8:"position";s:1:"1";s:6:"in_row";s:9:"_um_row_1";s:10:"in_sub_row";s:1:"0";s:9:"in_column";s:1:"1";s:8:"in_group";s:0:"";}s:10:"user_email";a:13:{s:5:"title";s:14:"E-mail Address";s:7:"metakey";s:10:"user_email";s:4:"type";s:4:"text";s:5:"label";s:14:"E-mail Address";s:8:"required";i:0;s:6:"public";i:1;s:8:"editable";i:1;s:8:"validate";s:12:"unique_email";s:8:"position";s:1:"4";s:6:"in_row";s:9:"_um_row_1";s:10:"in_sub_row";s:1:"0";s:9:"in_column";s:1:"1";s:8:"in_group";s:0:"";}s:13:"user_password";a:16:{s:5:"title";s:8:"Password";s:7:"metakey";s:13:"user_password";s:4:"type";s:8:"password";s:5:"label";s:8:"Password";s:8:"required";i:1;s:6:"public";i:1;s:8:"editable";i:1;s:9:"min_chars";i:8;s:9:"max_chars";i:30;s:15:"force_good_pass";i:1;s:18:"force_confirm_pass";i:1;s:8:"position";s:1:"5";s:6:"in_row";s:9:"_um_row_1";s:10:"in_sub_row";s:1:"0";s:9:"in_column";s:1:"1";s:8:"in_group";s:0:"";}s:10:"first_name";a:12:{s:5:"title";s:10:"First Name";s:7:"metakey";s:10:"first_name";s:4:"type";s:4:"text";s:5:"label";s:10:"First Name";s:8:"required";i:0;s:6:"public";i:1;s:8:"editable";i:1;s:8:"position";s:1:"2";s:6:"in_row";s:9:"_um_row_1";s:10:"in_sub_row";s:1:"0";s:9:"in_column";s:1:"1";s:8:"in_group";s:0:"";}s:9:"last_name";a:12:{s:5:"title";s:9:"Last Name";s:7:"metakey";s:9:"last_name";s:4:"type";s:4:"text";s:5:"label";s:9:"Last Name";s:8:"required";i:0;s:6:"public";i:1;s:8:"editable";i:1;s:8:"position";s:1:"3";s:6:"in_row";s:9:"_um_row_1";s:10:"in_sub_row";s:1:"0";s:9:"in_column";s:1:"1";s:8:"in_group";s:0:"";}s:9:"_um_row_1";a:4:{s:4:"type";s:3:"row";s:2:"id";s:9:"_um_row_1";s:8:"sub_rows";s:1:"1";s:4:"cols";s:1:"1";}}',
  240. '_um_mode' => 'register',
  241. '_um_core' => 'register',
  242. '_um_register_use_custom_settings' => 0,
  243. );
  244. $this->core_form_meta['login'] = array(
  245. '_um_custom_fields' => 'a:3:{s:8:"username";a:13:{s:5:"title";s:18:"Username or E-mail";s:7:"metakey";s:8:"username";s:4:"type";s:4:"text";s:5:"label";s:18:"Username or E-mail";s:8:"required";i:1;s:6:"public";i:1;s:8:"editable";i:0;s:8:"validate";s:24:"unique_username_or_email";s:8:"position";s:1:"1";s:6:"in_row";s:9:"_um_row_1";s:10:"in_sub_row";s:1:"0";s:9:"in_column";s:1:"1";s:8:"in_group";s:0:"";}s:13:"user_password";a:16:{s:5:"title";s:8:"Password";s:7:"metakey";s:13:"user_password";s:4:"type";s:8:"password";s:5:"label";s:8:"Password";s:8:"required";i:1;s:6:"public";i:1;s:8:"editable";i:1;s:9:"min_chars";i:8;s:9:"max_chars";i:30;s:15:"force_good_pass";i:1;s:18:"force_confirm_pass";i:1;s:8:"position";s:1:"2";s:6:"in_row";s:9:"_um_row_1";s:10:"in_sub_row";s:1:"0";s:9:"in_column";s:1:"1";s:8:"in_group";s:0:"";}s:9:"_um_row_1";a:4:{s:4:"type";s:3:"row";s:2:"id";s:9:"_um_row_1";s:8:"sub_rows";s:1:"1";s:4:"cols";s:1:"1";}}',
  246. '_um_mode' => 'login',
  247. '_um_core' => 'login',
  248. '_um_login_use_custom_settings' => 0,
  249. );
  250. $this->core_form_meta['profile'] = array(
  251. '_um_custom_fields' => 'a:1:{s:9:"_um_row_1";a:4:{s:4:"type";s:3:"row";s:2:"id";s:9:"_um_row_1";s:8:"sub_rows";s:1:"1";s:4:"cols";s:1:"1";}}',
  252. '_um_mode' => 'profile',
  253. '_um_core' => 'profile',
  254. '_um_profile_use_custom_settings' => 0,
  255. );
  256. /**
  257. * UM hook
  258. *
  259. * @type filter
  260. * @title um_email_notifications
  261. * @description Extend UM email notifications
  262. * @input_vars
  263. * [{"var":"$emails","type":"array","desc":"UM email notifications"}]
  264. * @change_log
  265. * ["Since: 2.0"]
  266. * @usage
  267. * <?php add_filter( 'um_email_notifications', 'function_name', 10, 1 ); ?>
  268. * @example
  269. * <?php
  270. * add_filter( 'um_email_notifications', 'my_email_notifications', 10, 1 );
  271. * function my_email_notifications( $emails ) {
  272. * // your code here
  273. * $emails['my_email'] = array(
  274. * 'key' => 'my_email',
  275. * 'title' => __( 'my_email_title','ultimate-member' ),
  276. * 'subject' => 'my_email_subject',
  277. * 'body' => 'my_email_body',
  278. * 'description' => 'my_email_description',
  279. * 'recipient' => 'user', // set 'admin' for make administrator as recipient
  280. * 'default_active' => true // can be false for make disabled by default
  281. * );
  282. *
  283. * return $emails;
  284. * }
  285. * ?>
  286. */
  287. $this->email_notifications = apply_filters( 'um_email_notifications', array(
  288. 'welcome_email' => array(
  289. 'key' => 'welcome_email',
  290. 'title' => __( 'Account Welcome Email','ultimate-member' ),
  291. 'subject' => 'Welcome to {site_name}!',
  292. 'body' => 'Hi {display_name},<br /><br />' .
  293. 'Thank you for signing up with {site_name}! Your account is now active.<br /><br />' .
  294. 'To login please visit the following url:<br /><br />' .
  295. '{login_url} <br /><br />' .
  296. 'Your account e-mail: {email} <br />' .
  297. 'Your account username: {username} <br /><br />' .
  298. 'If you have any problems, please contact us at {admin_email}<br /><br />' .
  299. 'Thanks,<br />' .
  300. '{site_name}',
  301. 'description' => __('Whether to send the user an email when his account is automatically approved','ultimate-member'),
  302. 'recipient' => 'user',
  303. 'default_active' => true
  304. ),
  305. 'checkmail_email' => array(
  306. 'key' => 'checkmail_email',
  307. 'title' => __( 'Account Activation Email','ultimate-member' ),
  308. 'subject' => 'Please activate your account',
  309. 'body' => 'Hi {display_name},<br /><br />' .
  310. 'Thank you for signing up with {site_name}! To activate your account, please click the link below to confirm your email address:<br /><br />' .
  311. '{account_activation_link} <br /><br />' .
  312. 'If you have any problems, please contact us at {admin_email}<br /><br />' .
  313. 'Thanks, <br />' .
  314. '{site_name}',
  315. 'description' => __('Whether to send the user an email when his account needs e-mail activation','ultimate-member'),
  316. 'recipient' => 'user'
  317. ),
  318. 'pending_email' => array(
  319. 'key' => 'pending_email',
  320. 'title' => __( 'Your account is pending review','ultimate-member' ),
  321. 'subject' => '[{site_name}] New user account',
  322. 'body' => 'Hi {display_name}, <br /><br />' .
  323. 'Thank you for signing up with {site_name}! Your account is currently being reviewed by a member of our team.<br /><br />' .
  324. 'Please allow us some time to process your request.<br /><br />' .
  325. 'If you have any problems, please contact us at {admin_email}<br /><br />' .
  326. 'Thanks,<br />' .
  327. '{site_name}',
  328. 'description' => __('Whether to send the user an email when his account needs admin review','ultimate-member'),
  329. 'recipient' => 'user'
  330. ),
  331. 'approved_email' => array(
  332. 'key' => 'approved_email',
  333. 'title' => __( 'Account Approved Email','ultimate-member' ),
  334. 'subject' => 'Your account at {site_name} is now active',
  335. 'body' => 'Hi {display_name},<br /><br />' .
  336. 'Thank you for signing up with {site_name}! Your account has been approved and is now active.<br /><br />' .
  337. 'To login please visit the following url:<br /><br />' .
  338. '{login_url}<br /><br />' .
  339. 'Your account e-mail: {email}<br />' .
  340. 'Your account username: {username}<br />' .
  341. 'Set your account password: {password_reset_link}<br /><br />' .
  342. 'If you have any problems, please contact us at {admin_email}<br /><br />' .
  343. 'Thanks,<br />' .
  344. '{site_name}',
  345. 'description' => __('Whether to send the user an email when his account is approved','ultimate-member'),
  346. 'recipient' => 'user'
  347. ),
  348. 'rejected_email' => array(
  349. 'key' => 'rejected_email',
  350. 'title' => __( 'Account Rejected Email','ultimate-member' ),
  351. 'subject' => 'Your account has been rejected',
  352. 'body' => 'Hi {display_name},<br /><br />' .
  353. 'Thank you for applying for membership to {site_name}! We have reviewed your information and unfortunately we are unable to accept you as a member at this moment.<br /><br />' .
  354. 'Please feel free to apply again at a future date.<br /><br />' .
  355. 'Thanks,<br />' .
  356. '{site_name}',
  357. 'description' => __('Whether to send the user an email when his account is rejected','ultimate-member'),
  358. 'recipient' => 'user'
  359. ),
  360. 'inactive_email' => array(
  361. 'key' => 'inactive_email',
  362. 'title' => __( 'Account Deactivated Email','ultimate-member' ),
  363. 'subject' => 'Your account has been deactivated',
  364. 'body' => 'Hi {display_name},<br /><br />' .
  365. 'This is an automated email to let you know your {site_name} account has been deactivated.<br /><br />' .
  366. 'If you would like your account to be reactivated please contact us at {admin_email}<br /><br />' .
  367. 'Thanks,<br />' .
  368. '{site_name}',
  369. 'description' => __('Whether to send the user an email when his account is deactivated','ultimate-member'),
  370. 'recipient' => 'user',
  371. 'default_active' => true
  372. ),
  373. 'deletion_email' => array(
  374. 'key' => 'deletion_email',
  375. 'title' => __( 'Account Deleted Email','ultimate-member' ),
  376. 'subject' => 'Your account has been deleted',
  377. 'body' => 'Hi {display_name},<br /><br />' .
  378. 'This is an automated email to let you know your {site_name} account has been deleted. All of your personal information has been permanently deleted and you will no longer be able to login to {site_name}.<br /><br />' .
  379. 'If your account has been deleted by accident please contact us at {admin_email} <br />' .
  380. 'Thanks,<br />' .
  381. '{site_name}',
  382. 'description' => __('Whether to send the user an email when his account is deleted','ultimate-member'),
  383. 'recipient' => 'user',
  384. 'default_active' => true
  385. ),
  386. 'resetpw_email' => array(
  387. 'key' => 'resetpw_email',
  388. 'title' => __( 'Password Reset Email','ultimate-member' ),
  389. 'subject' => 'Reset your password',
  390. 'body' => 'Hi {display_name},<br /><br />' .
  391. 'We received a request to reset the password for your account. If you made this request, click the link below to change your password:<br /><br />' .
  392. '{password_reset_link}<br /><br />' .
  393. 'If you didn\'t make this request, you can ignore this email <br /><br />' .
  394. 'Thanks,<br />' .
  395. '{site_name}',
  396. 'description' => __('Whether to send an email when users changed their password (Recommended, please keep on)','ultimate-member'),
  397. 'recipient' => 'user',
  398. 'default_active' => true
  399. ),
  400. 'changedpw_email' => array(
  401. 'key' => 'changedpw_email',
  402. 'title' => __( 'Password Changed Email','ultimate-member' ),
  403. 'subject' => 'Your {site_name} password has been changed',
  404. 'body' => 'Hi {display_name},<br /><br />' .
  405. 'You recently changed the password associated with your {site_name} account.<br /><br />' .
  406. 'If you did not make this change and believe your {site_name} account has been compromised, please contact us at the following email address: {admin_email}<br /><br />' .
  407. 'Thanks,<br />' .
  408. '{site_name}',
  409. 'description' => __('Whether to send the user an email when he request to reset password (Recommended, please keep on)','ultimate-member'),
  410. 'recipient' => 'user',
  411. 'default_active' => true
  412. ),
  413. 'changedaccount_email' => array(
  414. 'key' => 'changedaccount_email',
  415. 'title' => __( 'Account Updated Email','ultimate-member' ),
  416. 'subject' => 'Your account at {site_name} was updated',
  417. 'body' => 'Hi {display_name},<br /><br />' .
  418. 'You recently updated your {site_name} account.<br /><br />' .
  419. 'If you did not make this change and believe your {site_name} account has been compromised, please contact us at the following email address: {admin_email}<br /><br />' .
  420. 'Thanks,<br />' .
  421. '{site_name}',
  422. 'description' => __('Whether to send the user an email when he updated their account','ultimate-member'),
  423. 'recipient' => 'user',
  424. 'default_active'=> true
  425. ),
  426. 'notification_new_user' => array(
  427. 'key' => 'notification_new_user',
  428. 'title' => __( 'New User Notification','ultimate-member' ),
  429. 'subject' => '[{site_name}] New user account',
  430. 'body' => '{display_name} has just created an account on {site_name}. To view their profile click here:<br /><br />' .
  431. '{user_profile_link}<br /><br />' .
  432. 'Here is the submitted registration form:<br /><br />' .
  433. '{submitted_registration}',
  434. 'description' => __('Whether to receive notification when a new user account is approved','ultimate-member'),
  435. 'recipient' => 'admin',
  436. 'default_active' => true
  437. ),
  438. 'notification_review' => array(
  439. 'key' => 'notification_review',
  440. 'title' => __( 'Account Needs Review Notification','ultimate-member' ),
  441. 'subject' => '[{site_name}] New user awaiting review',
  442. 'body' => '{display_name} has just applied for membership to {site_name} and is waiting to be reviewed.<br /><br />' .
  443. 'To review this member please click the following link:<br /><br />' .
  444. '{user_profile_link}<br /><br />' .
  445. 'Here is the submitted registration form:<br /><br />' .
  446. '{submitted_registration}',
  447. 'description' => __('Whether to receive notification when an account needs admin review','ultimate-member'),
  448. 'recipient' => 'admin'
  449. ),
  450. 'notification_deletion' => array(
  451. 'key' => 'notification_deletion',
  452. 'title' => __( 'Account Deletion Notification','ultimate-member' ),
  453. 'subject' => '[{site_name}] Account deleted',
  454. 'body' => '{display_name} has just deleted their {site_name} account.',
  455. 'description' => __('Whether to receive notification when an account is deleted','ultimate-member'),
  456. 'recipient' => 'admin'
  457. )
  458. ) );
  459. //settings defaults
  460. $this->settings_defaults = array(
  461. 'restricted_access_post_metabox' => array( 'post' => 1, 'page' => 1 ),
  462. 'disable_restriction_pre_queries' => 0,
  463. 'uninstall_on_delete' => 0,
  464. 'permalink_base' => 'user_login',
  465. 'display_name' => 'full_name',
  466. 'display_name_field' => '',
  467. 'author_redirect' => 1,
  468. 'members_page' => 1,
  469. 'use_gravatars' => 0,
  470. 'use_um_gravatar_default_builtin_image' => 'default',
  471. 'use_um_gravatar_default_image' => 0,
  472. 'reset_require_strongpass' => 0,
  473. 'password_min_chars' => 8,
  474. 'password_max_chars' => 30,
  475. 'account_tab_password' => 1,
  476. 'account_tab_privacy' => 1,
  477. 'account_tab_notifications' => 1,
  478. 'account_tab_delete' => 1,
  479. 'delete_account_text' => __( 'Are you sure you want to delete your account? This will erase all of your account data from the site. To delete your account enter your password below.', 'ultimate-member' ),
  480. 'delete_account_no_pass_required_text' => __( 'Are you sure you want to delete your account? This will erase all of your account data from the site. To delete your account, click on the button below.', 'ultimate-member' ),
  481. 'account_name' => 1,
  482. 'account_name_disable' => 0,
  483. 'account_name_require' => 1,
  484. 'account_email' => 1,
  485. 'account_general_password' => 0,
  486. 'account_hide_in_directory' => 1,
  487. 'account_hide_in_directory_default' => 'No',
  488. 'account_require_strongpass' => 0,
  489. 'photo_thumb_sizes' => array( 40, 80, 190 ),
  490. 'cover_thumb_sizes' => array( 300, 600 ),
  491. 'accessible' => 0,
  492. 'access_redirect' => '',
  493. 'access_exclude_uris' => array(),
  494. 'home_page_accessible' => 1,
  495. 'category_page_accessible' => 1,
  496. 'restricted_post_title_replace' => 1,
  497. 'restricted_access_post_title' => __( 'Restricted content', 'ultimate-member' ),
  498. 'restricted_access_message' => '',
  499. 'restricted_blocks' => 0,
  500. 'enable_blocks' => 0,
  501. 'restricted_block_message' => '',
  502. 'enable_reset_password_limit' => 1,
  503. 'reset_password_limit_number' => 3,
  504. 'blocked_emails' => '',
  505. 'blocked_words' => 'admin' . "\r\n" . 'administrator' . "\r\n" . 'webmaster' . "\r\n" . 'support' . "\r\n" . 'staff',
  506. 'default_avatar' => '',
  507. 'default_cover' => '',
  508. 'disable_profile_photo_upload' => 0,
  509. 'profile_show_metaicon' => 0,
  510. 'profile_menu' => 1,
  511. 'profile_menu_default_tab' => 'main',
  512. 'profile_menu_icons' => 1,
  513. 'form_asterisk' => 0,
  514. 'profile_title' => '{display_name} | {site_name}',
  515. 'profile_desc' => '{display_name} is on {site_name}. Join {site_name} to view {display_name}\'s profile',
  516. 'admin_email' => get_bloginfo('admin_email'),
  517. 'mail_from' => get_bloginfo('name'),
  518. 'mail_from_addr' => get_bloginfo('admin_email'),
  519. 'email_html' => 1,
  520. 'image_orientation_by_exif' => 0,
  521. 'image_compression' => 60,
  522. 'image_max_width' => 1000,
  523. 'cover_min_width' => 1000,
  524. 'profile_photo_max_size' => 999999999,
  525. 'cover_photo_max_size' => 999999999,
  526. 'custom_roles_increment' => 1,
  527. 'um_profile_object_cache_stop' => 0,
  528. 'rest_api_version' => '2.0',
  529. 'member_directory_own_table' => 0,
  530. 'profile_show_html_bio' => 0,
  531. 'profile_noindex' => 0,
  532. 'activation_link_expiry_time' => '',
  533. );
  534. add_filter( 'um_get_tabs_from_config', '__return_true' );
  535. $tabs = UM()->profile()->tabs();
  536. foreach ( $tabs as $id => $tab ) {
  537. if ( ! empty( $tab['hidden'] ) ) {
  538. continue;
  539. }
  540. $this->settings_defaults[ 'profile_tab_' . $id ] = 1;
  541. if ( ! isset( $tab['default_privacy'] ) ) {
  542. $this->settings_defaults[ 'profile_tab_' . $id . '_privacy' ] = 0;
  543. $this->settings_defaults[ 'profile_tab_' . $id . '_roles' ] = '';
  544. }
  545. }
  546. foreach ( $this->email_notifications as $key => $notification ) {
  547. $this->settings_defaults[ $key . '_on' ] = ! empty( $notification['default_active'] );
  548. $this->settings_defaults[ $key . '_sub' ] = $notification['subject'];
  549. $this->settings_defaults[ $key ] = $notification['body'];
  550. }
  551. foreach ( $this->core_pages as $page_s => $page ) {
  552. $page_id = UM()->options()->get_core_page_id( $page_s );
  553. $this->settings_defaults[ $page_id ] = '';
  554. }
  555. foreach( $this->core_form_meta_all as $key => $value ) {
  556. $this->settings_defaults[ str_replace( '_um_', '', $key ) ] = $value;
  557. }
  558. /**
  559. * UM hook
  560. *
  561. * @type filter
  562. * @title um_default_settings_values
  563. * @description Extend UM default settings
  564. * @input_vars
  565. * [{"var":"$settings","type":"array","desc":"UM default settings"}]
  566. * @change_log
  567. * ["Since: 2.0"]
  568. * @usage
  569. * <?php add_filter( 'um_default_settings_values', 'function_name', 10, 1 ); ?>
  570. * @example
  571. * <?php
  572. * add_filter( 'um_default_settings_values', 'my_default_settings_values', 10, 1 );
  573. * function my_default_settings_values( $settings ) {
  574. * // your code here
  575. * return $settings;
  576. * }
  577. * ?>
  578. */
  579. $this->settings_defaults = apply_filters( 'um_default_settings_values', $this->settings_defaults );
  580. $this->permalinks = $this->get_core_pages();
  581. $this->default_roles_metadata = array(
  582. /*
  583. * All caps map
  584. *
  585. * '_um_can_access_wpadmin' => 1,
  586. '_um_can_not_see_adminbar' => 0,
  587. '_um_can_edit_everyone' => 1,
  588. '_um_can_edit_roles' => '',
  589. '_um_can_delete_everyone' => 1,
  590. '_um_can_delete_roles' => '',
  591. '_um_after_delete' => '',
  592. '_um_delete_redirect_url' => '',
  593. '_um_can_edit_profile' => 1,
  594. '_um_can_delete_profile' => 1,
  595. '_um_default_homepage' => 1,
  596. '_um_redirect_homepage' => '',
  597. '_um_after_login' => 'redirect_admin',
  598. '_um_login_redirect_url' => '',
  599. '_um_after_logout' => 'redirect_home',
  600. '_um_logout_redirect_url' => '',
  601. '_um_can_view_all' => 1,
  602. '_um_can_view_roles' => '',
  603. '_um_can_make_private_profile' => 1,
  604. '_um_can_access_private_profile' => 1,
  605. '_um_status' => 'approved',
  606. '_um_auto_approve_act' => 'redirect_profile',
  607. '_um_auto_approve_url' => '',
  608. '_um_login_email_activate' => '',
  609. '_um_checkmail_action' => '',
  610. '_um_checkmail_message' => '',
  611. '_um_checkmail_url' => '',
  612. '_um_url_email_activate' => '',
  613. '_um_pending_action' => '',
  614. '_um_pending_message' => '',
  615. '_um_pending_url' => '',
  616. *
  617. * */
  618. 'subscriber' => array(
  619. '_um_can_access_wpadmin' => 0,
  620. '_um_can_not_see_adminbar' => 1,
  621. '_um_can_edit_everyone' => 0,
  622. '_um_can_delete_everyone' => 0,
  623. '_um_can_edit_profile' => 1,
  624. '_um_can_delete_profile' => 1,
  625. '_um_after_login' => 'redirect_profile',
  626. '_um_after_logout' => 'redirect_home',
  627. '_um_default_homepage' => 1,
  628. '_um_can_view_all' => 1,
  629. '_um_can_make_private_profile' => 0,
  630. '_um_can_access_private_profile' => 0,
  631. '_um_status' => 'approved',
  632. '_um_auto_approve_act' => 'redirect_profile',
  633. ),
  634. 'author' => array(
  635. '_um_can_access_wpadmin' => 0,
  636. '_um_can_not_see_adminbar' => 1,
  637. '_um_can_edit_everyone' => 0,
  638. '_um_can_delete_everyone' => 0,
  639. '_um_can_edit_profile' => 1,
  640. '_um_can_delete_profile' => 1,
  641. '_um_after_login' => 'redirect_profile',
  642. '_um_after_logout' => 'redirect_home',
  643. '_um_default_homepage' => 1,
  644. '_um_can_view_all' => 1,
  645. '_um_can_make_private_profile' => 0,
  646. '_um_can_access_private_profile' => 0,
  647. '_um_status' => 'approved',
  648. '_um_auto_approve_act' => 'redirect_profile',
  649. ),
  650. 'contributor' => array(
  651. '_um_can_access_wpadmin' => 0,
  652. '_um_can_not_see_adminbar' => 1,
  653. '_um_can_edit_everyone' => 0,
  654. '_um_can_delete_everyone' => 0,
  655. '_um_can_edit_profile' => 1,
  656. '_um_can_delete_profile' => 1,
  657. '_um_after_login' => 'redirect_profile',
  658. '_um_after_logout' => 'redirect_home',
  659. '_um_default_homepage' => 1,
  660. '_um_can_view_all' => 1,
  661. '_um_can_make_private_profile' => 0,
  662. '_um_can_access_private_profile' => 0,
  663. '_um_status' => 'approved',
  664. '_um_auto_approve_act' => 'redirect_profile',
  665. ),
  666. 'editor' => array(
  667. '_um_can_access_wpadmin' => 0,
  668. '_um_can_not_see_adminbar' => 1,
  669. '_um_can_edit_everyone' => 0,
  670. '_um_can_delete_everyone' => 0,
  671. '_um_can_edit_profile' => 1,
  672. '_um_can_delete_profile' => 1,
  673. '_um_after_login' => 'redirect_profile',
  674. '_um_after_logout' => 'redirect_home',
  675. '_um_default_homepage' => 1,
  676. '_um_can_view_all' => 1,
  677. '_um_can_make_private_profile' => 0,
  678. '_um_can_access_private_profile' => 0,
  679. '_um_status' => 'approved',
  680. '_um_auto_approve_act' => 'redirect_profile',
  681. ),
  682. 'administrator' => array(
  683. '_um_can_access_wpadmin' => 1,
  684. '_um_can_not_see_adminbar' => 0,
  685. '_um_can_edit_everyone' => 1,
  686. '_um_can_delete_everyone' => 1,
  687. '_um_can_edit_profile' => 1,
  688. '_um_can_delete_profile' => 1,
  689. '_um_default_homepage' => 1,
  690. '_um_after_login' => 'redirect_admin',
  691. '_um_after_logout' => 'redirect_home',
  692. '_um_can_view_all' => 1,
  693. '_um_can_make_private_profile' => 1,
  694. '_um_can_access_private_profile' => 1,
  695. '_um_status' => 'approved',
  696. '_um_auto_approve_act' => 'redirect_profile',
  697. ),
  698. );
  699. }
  700. /**
  701. * Get UM Pages
  702. *
  703. * @return array
  704. */
  705. function get_core_pages() {
  706. $permalink = array();
  707. $core_pages = array_keys( $this->core_pages );
  708. if ( empty( $core_pages ) ) {
  709. return $permalink;
  710. }
  711. foreach ( $core_pages as $page_key ) {
  712. $page_option_key = UM()->options()->get_core_page_id( $page_key );
  713. $permalink[ $page_key ] = UM()->options()->get( $page_option_key );
  714. }
  715. return $permalink;
  716. }
  717. /**
  718. * @todo make config class not cycled
  719. */
  720. function set_core_page() {
  721. $this->core_pages = apply_filters( 'um_core_pages', array(
  722. 'user' => array( 'title' => __( 'User', 'ultimate-member' ) ),
  723. 'login' => array( 'title' => __( 'Login', 'ultimate-member' ) ),
  724. 'register' => array( 'title' => __( 'Register', 'ultimate-member' ) ),
  725. 'members' => array( 'title' => __( 'Members', 'ultimate-member' ) ),
  726. 'logout' => array( 'title' => __( 'Logout', 'ultimate-member' ) ),
  727. 'account' => array( 'title' => __( 'Account', 'ultimate-member' ) ),
  728. 'password-reset' => array( 'title' => __( 'Password Reset', 'ultimate-member' ) ),
  729. ) );
  730. }
  731. //end class
  732. }
  733. }