从零搭建PHP点餐系统:WordPress站长的开发指南

从零搭建PHP点餐系统:WordPress站长的开发指南

在餐饮行业数字化转型的浪潮下,用PHP自主开发点餐系统已成为中小商家的热门选择。本文将以WordPress技术栈为基础,详解如何构建一个高性能、易维护的在线点餐网站。

一、环境搭建与WordPress集成

  • 服务器配置:推荐使用宝塔面板(bt.cn)搭建LAMP环境(Linux+Apache+MySQL+PHP7.4+)
  • WordPress设置:安装经典编辑器插件,在主题目录新建takeaway-system文件夹存放PHP模块文件
  • 数据库创建:通过phpMyAdmin建立专用数据库wp_foodorder(与WordPress主库分离保障安全)

二、数据库设计(核心表结构)

CREATE TABLE `menu` (
  `id` INT AUTO_INCREMENT PRIMARY KEY,
  `name` VARCHAR(100) NOT NULL,
  `price` DECIMAL(8,2),
  `category` ENUM('主食','饮品','小吃'),
  `image_url` VARCHAR(255)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE `orders` (
  `order_id` INT AUTO_INCREMENT,
  `user_id` INT,
  `total` DECIMAL(10,2),
  `status` TINYINT DEFAULT 0,
  `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY(order_id)
) ENGINE=InnoDB;

注:通过外键关联WordPress用户表实现会员系统集成

三、核心功能开发

1. 菜单动态加载模块

function get_menu_items() {
    global $wpdb;
    return $wpdb->get_results("SELECT * FROM wp_foodorder.menu");
}

add_shortcode('display_menu', function(){
    $menu = get_menu_items();
    $html = '<div class="menu-grid">';
    foreach($menu as $item) {
        $html .= "<div class='menu-item' data-id='{$item->id}'>
            <img src='{$item->image_url}'/>
            <h4>{$item->name}</h4>
            <span class='price'>¥{$item->price}</span>
        </div>";
    }
    return $html.'</div>';
});

2. 购物车会话管理

session_start();

function add_to_cart($item_id) {
    if(!isset($_SESSION['cart'])) {
        $_SESSION['cart'] = array();
    }
    $_SESSION['cart'][$item_id] = ($_SESSION['cart'][$item_id] ?? 0) + 1;
}

四、SEO优化关键策略

  • 结构化数据:在菜品页面添加JSON-LD格式的Recipe结构化标记
  • 速度优化:使用WP Rocket插件实现CSS/JS压缩,菜品图片采用WebP格式
  • 内容策略:每周发布"今日特价菜"文章,嵌入[display_menu]短代码提升内容相关性
  • 本地SEO:在页脚添加Schema标记的餐厅地址和营业时间信息

五、安全防护措施

  • 使用prepare()方法防范SQL注入:$wpdb->prepare("SELECT * FROM menu WHERE id = %d", $id)
  • 订单支付接口采用JWT加密传输
  • 安装Wordfence防火墙插件监控异常请求

六、WordPress集成方案

在主题的functions.php添加以下代码实现系统融合:

add_action('wp_enqueue_scripts', function(){
    wp_enqueue_style('food-order', get_template_directory_uri().'/takeaway-system/css/style.css');
    wp_enqueue_script('cart-js', get_template_directory_uri().'/takeaway-system/js/cart.js', array('jquery'));
});

通过创建[餐厅菜单]页面模板,使用短代码[display_menu]调用核心功能模块。

阅读剩余
THE END