\u0410\u0440\u0445\u0438\u0432 \u043a\u0430\u0440\u043a\u0430\u0441\u0430 \u0442\u0438\u043f\u043e\u0432\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f<\/a>.<\/p>\n<?php\r\n\/*\r\nPlugin Name: \r\nPlugin URI: http:\/\/\r\nDescription: \r\nAuthor: AuthorName <Author@Mail>\r\nAuthor URI: http:\/\/\r\nVersion: 1.0\r\n*\/ \r\n\r\nclass ModuleClass \r\n{\r\n\u00a0\u00a0 \u00a0var $options;\r\n\u00a0\u00a0 \u00a0\/\/to do ... other class vars\r\n\r\n\u00a0\u00a0\u00a0 public function __construct()\r\n\u00a0\u00a0\u00a0 {\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/Actions\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0add_action('admin_menu', array($this, '_add_menu'));\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0add_action('init', array($this, 'init_hook'), 0);\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this->options = get_option('...');\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/to do ... other actions and necessary inits\r\n\r\n\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0\/* admin_menu hook *\/\r\n\u00a0\u00a0 \u00a0public function _add_menu() {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0add_options_page('Params module page', 'Params module page', 8, __FILE__, \r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0array($this, '_options_page'));\r\n\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0\/* init hook *\/\r\n\u00a0\u00a0 \u00a0public function init_hook() {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0global $user_ID, $user_login;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ to do ...\r\n\r\n\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0\u00a0 \/* Options admin page *\/\r\n\u00a0\u00a0\u00a0 public function _options_page() {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0global $wpdb, $table_prefix;\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0switch ($_POST['action']) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0case 'save_settings':\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/delete service fields\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0unset($_POST['action'], $_POST['sbm']);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ to do ... validate new settings\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0update_option('...', $_POST);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$this->options = $_POST;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0echo '<div><p>' . __(\"Setting are updated.\") . '<\/p><\/div>';\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0break;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0case 'some other actoins ...':\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/do some actions\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$acs = $this->options;\r\n\r\n?>\r\n<div>\r\n\u00a0\u00a0 \u00a0<h2><?=__('Your module settings title');?><\/h2>\r\n\u00a0\u00a0 \u00a0<form method=\"post\">\r\n\u00a0\u00a0 \u00a0<input type=\"hidden\" name=\"action\" value=\"save_settings\" \/>\r\n\u00a0\u00a0 \u00a0<fieldset>\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0<legend><\/legend>\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0<!-- To do ... form fields -->\r\n\u00a0\u00a0 \u00a0<\/fieldset>\r\n\u00a0\u00a0 \u00a0<input type=\"submit\" name=\"sbm\" value=\"<?=__('Do')?>\" \/>\r\n\u00a0\u00a0 \u00a0<\/form>\r\n\r\n\u00a0\u00a0 \u00a0<h2><?=__('Do some actions');?><\/h2>\r\n\r\n<\/div>\r\n<?php\r\n\u00a0\u00a0\u00a0 }\r\n\r\n\u00a0\u00a0 \u00a0\/* install actions (when activate first time) *\/\r\n\u00a0\u00a0\u00a0 static function install() {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0global $wpdb;\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/create table(s) if it needs any\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$wpdb->query(\"\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0CREATE TABLE IF NOT EXISTS `...` (\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0...\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0) ENGINE=MyISAM DEFAULT CHARSET=utf8; \");\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/set defaults\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0add_option('...', ModuleClass::default_settings() );\r\n\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0\/* Default settings *\/\r\n\u00a0\u00a0 \u00a0static function default_settings() {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0return array(\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0'option1' => 'value',\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0...\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0);\r\n\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0\/* uninstall hook *\/\r\n\u00a0\u00a0\u00a0 static function uninstall() {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0global $wpdb;\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/drop created tables and delete module options\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$wpdb->query(\"DROP TABLE IF EXISTS `...`\");\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0delete_option('...');\r\n\u00a0\u00a0 \u00a0}\r\n\r\n} \r\n\r\nregister_uninstall_hook( __FILE__, array('ModuleClass', 'uninstall'));\r\nregister_activation_hook( __FILE__, array('ModuleClass', 'install') );\r\n\r\nif (class_exists(\"ModuleClass\")) {\r\n\u00a0\u00a0 \u00a0$module_obj = new ModuleClass();\r\n}\r\n\r\nif (isset($module_obj)) {\r\n\u00a0\u00a0 \u00a0\/\/to do ...\r\n\u00a0\u00a0 \u00a0;\r\n\r\n} \/\/ if (isset($module_obj))<\/pre>\n","protected":false},"excerpt":{"rendered":"\u041f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u0443\u0434\u043e\u0431\u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u043d\u0435 \u0441 \u0447\u0438\u0441\u0442\u043e\u0433\u043e \u043b\u0438\u0441\u0442\u0430, \u0430 \u0442\u0438\u043f\u043e\u0432\u043e\u0433\u043e \u0447\u0435\u0440\u043d\u043e\u0432\u0438\u043a\u0430. \u041c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u0430 \u043d\u0435 \u0440\u044b\u0441\u043a\u0430\u0442\u044c \u043f\u043e \u043c\u0430\u043d\u0443\u0430\u043b\u0430\u043c \u0438 \u0447\u0443\u0436\u0438\u043c \u043c\u043e\u0434\u0443\u043b\u044f\u043c, \u0432\u044b\u0438\u0441\u043a\u0438\u0432\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0438\u043f\u043e\u0432\u044b\u0445 \u0441\u0435\u043a\u0446\u0438\u0439 \u0432\u0440\u043e\u0434\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0438 \/ \u0434\u0435\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0438 \u043c\u043e\u0434\u0443\u043b\u044f.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-3387","post","type-post","status-publish","format-standard","hentry","category-wordpress"],"acf":[],"yoast_head":"\n
\u041a\u0430\u0440\u043a\u0430\u0441 \u043c\u043e\u0434\u0443\u043b\u044f (\u043f\u043b\u0430\u0433\u0438\u043d\u0430) \u0434\u043b\u044f wordpress<\/title>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\n\t\n\t\n