prefix . 'ggpush_records'; $charset_collate = $wpdb->get_charset_collate(); $sql = << 100, 'push_timeout' => 30, )); } } // 删除插件执行的代码 public static function plugin_uninstall() { // 删除表 global $wpdb; global $ggpush_options; $ggpush_options = get_option('ggpush_options', array()); $table_name = $wpdb->prefix . 'ggpush_records'; $wpdb->query('DROP TABLE IF EXISTS `' . $table_name . '`'); // 删除IndexNow密钥文件 Ggpush_Api::delete_indexnow_keyfile(); // 删除配置 delete_option('ggpush_options'); } // 禁用插件执行的代码 public static function plugin_deactivation() { // 插件已禁用,删除定时任务 Ggpush_Cron::update_cron(false); } // 初始化 public static function admin_init() { // 注册设置页面 if (!empty($_REQUEST['page'])) { if ('ggpush-timing-push' === $_REQUEST['page']) { // 定时推送 Ggpush_Task::init_page(); } else if ('ggpush-settings' === $_REQUEST['page']) { // 推送设置 Ggpush_Settings::init_page(); } else if ('ggpush-assist-push' === $_REQUEST['page']) { // 辅助推送 Ggpush_Assist::init_page(); } } } // 添加菜单 public static function admin_menu() { global $ggpush_options; $position = null; if (!empty($ggpush_options['menu_position'])) { $position = intval($ggpush_options['menu_position']); } $push_record = 0; if (!empty($ggpush_options['push_record'])) { $push_record = intval($ggpush_options['push_record']); } // 父菜单 add_menu_page( '果果推送', '果果推送', 'manage_options', '#ggpush', null, 'dashicons-admin-links', $position ); // 推送记录页面 if (0 === $push_record) { add_submenu_page( '#ggpush', '推送记录', '推送记录', 'manage_options', 'ggpush-record', array('Ggpush_Record', 'home') ); } // 推送设置 add_submenu_page( '#ggpush', '推送设置', '推送设置', 'manage_options', 'ggpush-settings', array('Ggpush_Settings', 'show_page') ); // 定时推送 add_submenu_page( '#ggpush', '定时推送', '定时推送', 'manage_options', 'ggpush-timing-push', array('Ggpush_Task', 'show_page') ); // 辅助推送 add_submenu_page( '#ggpush', '辅助推送', '辅助推送', 'manage_options', 'ggpush-assist-push', array('Ggpush_Assist', 'show_page') ); remove_submenu_page('#ggpush', '#ggpush'); } /** * 在插件页面添加设置链接 * @param $links * @return mixed */ public static function setups($links) { $business_link = '商业版'; array_unshift($links, $business_link); array_unshift($links, '主题'); array_unshift($links, '插件'); $setups = '设置'; array_unshift($links, $setups); return $links; } /** * 表单输入框回调 * @param array $args 这数据就是add_settings_field方法中第6个参数($args)的数据 */ public static function field_callback($args) { // 表单的id或name字段 $id = $args['label_for']; // 表单的名称 $input_name = 'ggpush_options[' . $id . ']'; // 获取表单选项中的值 global $ggpush_options; // 表单的值 $input_value = isset($ggpush_options[$id]) ? $ggpush_options[$id] : ''; // 表单的类型 $form_type = isset($args['form_type']) ? $args['form_type'] : 'input'; // 输入表单说明 $form_desc = isset($args['form_desc']) ? $args['form_desc'] : ''; // 输入表单type $type = isset($args['type']) ? $args['type'] : 'text'; // 输入表单placeholder $form_placeholder = isset($args['form_placeholder']) ? $args['form_placeholder'] : ''; // 下拉框等选项值 $form_data = isset($args['form_data']) ? $args['form_data'] : array(); // 扩展form表单属性 $form_extend = isset($args['form_extend']) ? $args['form_extend'] : array(); switch ($form_type) { case 'input': self::generate_input( array_merge( array( 'id' => $id, 'type' => $type, 'placeholder' => $form_placeholder, 'name' => $input_name, 'value' => $input_value, 'class' => 'regular-text', ), $form_extend )); break; case 'select': self::generate_select( array_merge( array( 'id' => $id, 'placeholder' => $form_placeholder, 'name' => $input_name ), $form_extend ), $form_data, $input_value ); break; case 'checkbox': self::generate_checkbox( array_merge( array( 'name' => $input_name . '[]', 'input_name' => $input_name, ), $form_extend ), $form_data, $input_value ); break; case 'textarea': self::generate_textarea( array_merge( array( 'id' => $id, 'placeholder' => $form_placeholder, 'name' => $input_name, 'class' => 'large-text code', 'rows' => 5, ), $form_extend ), $input_value ); break; } if (!empty($form_desc)) { ?>

$checkbox) { $checked = ''; if (!empty($value)) { if (is_array($value)) { if (in_array($checkbox['value'], $value)) { $checked = 'checked'; } } else { if ($checkbox['value'] == $value) { $checked = 'checked'; } } } ?>

$v) { echo esc_attr($k); ?>="" > admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('ggpush'), ) ); } else if ('post-new.php' === $pagenow) { global $post; $post_id = 0; if (!empty($post->ID)) { $post_id = $post->ID; } else if (!empty($_GET['post'])) { $post_id = intval($_GET['post']); } set_transient('ggpush_publish_post_id', $post_id); } } } /** * 发布文章后推送 * @return void */ public static function wp_ajax_ggpush_publish() { check_ajax_referer('ggpush'); global $ggpush_options; if (empty($ggpush_options['publish_article_platform'])) { wp_send_json(array( 'status' => 0, 'msg' => '未开启发布文章后推送', )); } $post_id = get_transient('ggpush_publish_post_id'); if (empty($post_id)) { wp_send_json(array( 'status' => 0, 'msg' => '非发布的新文章', )); } if (!empty($post_id) && !wp_is_post_revision($post_id) && 'publish' === get_post_status($post_id)) { // 推送链接 $post_url = get_permalink($post_id); Ggpush_Api::platform_push($post_url, $ggpush_options['publish_article_platform']); delete_transient('ggpush_publish_post_id'); wp_send_json(array( 'url' => $post_url, 'status' => 1, 'msg' => '链接已推送', )); } wp_send_json(array( 'status' => 0, 'msg' => '链接推送失败', )); } }