WordPress插件开发人力资源系统插件开发教程

Published
2022-04-20
浏览次数 :  363

插件的英文名字是:HR System. slug 是 hr-system. 翻译名称是 hr-system.

插件开发测试的网站是 xmdn.net . 一步一步操作下去总能实现的。

插件主要依赖 form . datatable 的js 插件实现。 用的是 wp_ajax 的方法。wordpress自带的 rest_api方法会在第二版更新中实现。

首先第一版迅速完成,因为要用到官网用作员工信息统计。 其他都没问题,要确定花名册编辑功能的实现。

首先确定结构。

然后是创建表格。在插件启动的时候创建数据库表单。创建一个部门的表单,一个员工信息的表单。

管理页面分为dashbored,总览,可以查看当前多少员工,入职多少员工,离职多少员工。 还可以分性别,分年龄段呈现。

第二个管理页面是添加部门,添加部门必须的表格。表格上方要写出当前哪些部门有多少人。 需设置添加和删除还有编辑操作。

第三个管理页面是花名册的页面。首先是添加花名册。花名册包括字段有:工号、姓名、性别、年龄、手机号、身份证号、首次合同时间,首次合同到期时间,现在合同起始时间,现在合同到期时间。

然后设置花名册可以导入和导出excel表单的功能。

流程:

一:Create plugin menu: Hr Plugin

二:Create plugin submenu.: Departmen\Staff\former staff

三:Create 部门 table when plugin activate.

Department table fields: 部门表单的字段: id, 部门名称(name)、主管(director)、人数(count)、(操作 action)

四:在数据库后台创建好表之后, 执行sql 命令, show create table 表名字:点击选项,勾选提示完整文本,点击执行, 就可以查看创建的命令。

CREATE TABLE `wp_hr_system_department` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(150) DEFAULT NULL,
 `director` varchar(150) DEFAULT NULL,
 `count` int(11) DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

create 花名册 table when plugin activate. 创建在职员工花名册数据表

在职员工花名册表单字段名:

序号ID、姓名name、性别gender、部门department、年龄age、手机号码phone、身份证号码ID card、身份证地址ID address、入职时间begin、首次合同时间first-contract、首次合同到期时间first-contract-end、现合同时间now-contract、现合同到期时间now-contract-end (操作action)

创建离职员工数据库花名册表

序号ID、姓名name、性别gender、年龄age、手机号码phone、身份证号码ID card、身份证地址ID address、入职时间begin、离职时间leave (操作action)

五:将创建数据表的命令粘贴到activate的函数里, 设置插件启动的时候执行创建数据表的命令。

insert data in tables when plugin activate

六:drop tables when plugin uninstall 插件禁止的时候删除数据表

七:create page when plugin activate 先通过查询wp_post表,SELECT * FROM wp_posts WHERE post_name = ‘hr-system’ 来查询是否在wp_posts 表里存在这么一行。 插件激活的时候创建页面。 用 wp_insert_post函数。

八: delete page when plugin deactivate ,用wp_delete_post

九: add style script file in plugin file. 添加特定的样式文件到管理页面。

添加bootstrapcss和js文件,datatable 样式文件,fontawesome 图标库等。

十:add plugin layout 添加后台管理页面的表格样式

十一:add ajax request 发送各类ajax post 请求 到 admin_ajax.php

首先创建admin_hook, 在 主要的class 文件夹里, define_admin_hook的函数里,添加钩子,

add_action(‘wp_ajax_hr_system_request’,$plugin_name,’hr_system_ajax_callback’);

然后去admin class 文件创建函数 hr_system_ajax_callback;

然后创建js的ajax的post 请求。

ajax store 部门 data to 部门 data table.

十二:将数据表信息数据添加到datable

首先要激活datatable表格、 创建表格的html .

<table id="table_id" class="display">
    <thead>
        <tr>
            <th>Column 1</th>
            <th>Column 2</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Row 1 Data 1</td>
            <td>Row 1 Data 2</td>
        </tr>
        <tr>
            <td>Row 2 Data 1</td>
            <td>Row 2 Data 2</td>
        </tr>
    </tbody>
</table>

添加datatble.css和datatble.js 到指定页面。

点击官网zero configaration的demo. 可以查看实例。 首先去js 文件激活datatable的js.

$(document).ready(function() {
    $('#example').DataTable();
} );

然后用$wpdb->get_results() 获取部门表所有数据, 默认是ARRAY 数组的形式, 通过foreach 循环出来, 循环的数据添加到datatable的tbody里面的tr就可以。

<?php 
            foreach ($department_data as $index=>$department) { ?> 
              <tr>
                <td><?php echo $department->id ?></td>
                <td><?php echo $department->name ?></td>
                <td><?php echo $department->director ?></td>
                <td><?php echo $department->duty ?></td>
                <td><?php echo $department->foundation ?></td>
                <td><i class="fa-solid text-danger fa-2x fa-trash-can btn-delete-book" data-id="<?php echo $book->id; ?>"></i></td>
              </tr>
              <?php 
            }
             ?>

十三:delete 部门表单row data 用wp_query->delete方法。

在设置delete数据表row信息的时候,有个需要注意的事项,就是实现js点击响应的时候,比方说你设置的删除button的id是delete, 当设置delete.on(‘click’ 时候设置的响应,你会发现,你表里原本有几十个delete button, 但是响应的永远只有第一个。那怎么办? 要用到 另一种选择dom的方法,也就是e.target , 也就是点击时候目前的dom , 意思就是 如果你的tbody id是 deletegroup , 当你点击这个deletegroup的时候, 上面有几十个dom,如果你设置了传递时候的参数的话,响应就会是当前点击的element. 6:

$("#deletegroup").on('click',(e)=>{console.log(e.target});

这样就会显示当前的dom。可以传递当前dom的数值到js进行操作。

add 部门 数据到添加员工信息表格中。

保存员工信息输入表格信息到database table.

从media gallery 上传图片信息到数据库。 (比如说员工身份证信息等, 方面后面随时可以打印)

list 员工花名册 在员工花名册的管理页面上。

用joins 链接两张表的字段来实现交互陈列。


标签:, , , ,
Top