使用WordPress搭建多语言商城

使用WordPress搭建多语言商城

1. Docker环境配置

首先创建docker-compose.yml:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
version: '3.8'

services:
wordpress:
image: wordpress:latest
restart: always
ports:
- "8000:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: narouser
WORDPRESS_DB_PASSWORD: naro123!@#
WORDPRESS_DB_NAME: multilinguashop
WORDPRESS_CONFIG_EXTRA: |
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');
define('WP_REDIS_HOST', 'redis');
volumes:
- wordpress:/var/www/html
- ./wp-content/plugins:/var/www/html/wp-content/plugins
- ./wp-content/themes:/var/www/html/wp-content/themes
- ./wp-cli.yml:/var/www/html/wp-cli.yml
depends_on:
- db
- redis
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost"]
interval: 30s
timeout: 10s
retries: 3
command: bash -c 'curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && chmod +x wp-cli.phar && mv wp-cli.phar /usr/local/bin/wp && apache2-foreground'

db:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress_password
volumes:
- db:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 30s
timeout: 10s
retries: 3

redis:
image: redis:latest
restart: always
ports:
- "6380:6379"
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 30s
timeout: 10s
retries: 3

phpmyadmin:
image: phpmyadmin/phpmyadmin
restart: always
ports:
- "7080:80"
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: somewordpress
depends_on:
- db

volumes:
wordpress:
db:
redis_data:

networks:
default:
driver: bridge

2. 启动环境

1
2
mkdir -p wp-content/{plugins,themes}
docker-compose up -d

3. 安装必要插件

访问 http://localhost:8000 完成WordPress初始安装后,安装以下插件:

  • WooCommerce
  • Polylang
  • Polylang for WooCommerce
  • WP Social Login with LINE (或 NextEnd Social Login)

插件配置命令

1
2
3
4
5
6
7
8
9
docker-compose exec wordpress wp plugin install woocommerce --activate --allow-root
docker-compose exec wordpress wp plugin install polylang --activate --allow-root
# 先安装 Polylang
docker-compose exec wordpress wp plugin install polylang --activate --allow-root

# 然动下载 polylang-wc.zip并将文件复制到容器中:
docker cp polylang-wc.zip multilinguashop-wordpress-1:/tmp/
docker-compose exec wordpress wp plugin install /tmp/polylang-wc.zip --activate --allow-root
# LINE登录插件需要手动下载并通过WordPress后台上传安装

4. LINE Login配置

  1. LINE Developers Console 创建新的Provider和Channel

  2. 获取以下信息:

    • Channel ID
    • Channel Secret
    • Callback URL: http://你的域名/wp-login.php?action=line-oauth
  3. 在WordPress后台找到”WP Social Login with LINE(免费但高级功能收费)”(或 NextEnd Social Login)设置:

    • 填入Channel ID和Channel Secret
    • 设置登录按钮样式
    • 配置用户角色映射

5. Polylang语言配置

  1. 进入WordPress后台 -> Languages
  2. 添加需要的语言(如:英语、日语、中文)
  3. 设置默认语言
  4. 配置语言切换菜单

6. WooCommerce多语言设置

1
2
3
4
5
6
7
8
9
10
add_filter('woocommerce_product_data_store_cpt_get_products_query', function($query, $query_vars) {
if (isset($query_vars['lang'])) {
$query['meta_query'][] = array(
'key' => '_locale',
'value' => $query_vars['lang'],
'compare' => '='
);
}
return $query;
}, 10, 2);

7. 商品翻译流程

  1. 创建新商品
  2. 点击语言标签添加翻译
  3. 翻译以下内容:
    • 商品标题
    • 商品描述
    • 短描述
    • SEO信息
    • 属性名称
    • 分类名称

8. LINE消息集成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function send_line_notification($order_id) {
$order = wc_get_order($order_id);
$line_bot_channel_access_token = 'YOUR_ACCESS_TOKEN';

$message = sprintf(
"新订单 #%s\n总额: %s\n客户: %s",
$order->get_order_number(),
$order->get_total(),
$order->get_billing_first_name()
);

$headers = array(
'Content-Type: application/json',
'Authorization: Bearer ' . $line_bot_channel_access_token
);

$body = json_encode(array(
'to' => 'USER_ID',
'messages' => array(
array(
'type' => 'text',
'text' => $message
)
)
));

wp_remote_post('https://api.line.me/v2/bot/message/push', array(
'headers' => $headers,
'body' => $body
));
}

add_action('woocommerce_new_order', 'send_line_notification');

9. 性能优化

  1. 安装缓存插件:

    1
    docker-compose exec wordpress wp plugin install wp-super-cache --activate
  2. 配置Redis缓存(可选):

1
2
3
4
# 在services下添加:
redis:
image: redis:alpine
restart: always
  1. 添加CDN支持(推荐Cloudflare)

注意事项

  1. 确保所有插件都保持最新
  2. 定期备份数据库和文件
  3. 使用SSL证书保护网站
  4. 设置适当的文件权限
  5. 配置定期自动更新

常见问题排查

  1. 语言切换404:重新保存固定链接设置
  2. LINE登录失败:检查回调URL配置
  3. 商品翻译不显示:检查Polylang与WooCommerce兼容性
  4. 性能问题:启用缓存,优化图片

这个教程涵盖了从环境搭建到具体功能实现的所有关键步骤。你可以根据实际需求调整配置参数。

需要注意的是,LINE Login的Channel ID和Secret需要从LINE开发者控制台获取,并且要确保回调URL配置正确。

对于生产环境,建议:
1. 使用nginx反向代理
2. 配置SSL证书
3. 设置适当的缓存策略
4. 实现自动备份方案
支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者,更多功能请访问博客站



使用WordPress搭建多语言商城
https://blog.fxcxy.com/2024/12/07/使用WordPress搭建多语言商城/
作者
spatacus
发布于
2024年12月7日
许可协议