feat(wordpress): adiciona plugin wordpress (agents, skills, knowledge e metadados do projeto)
This commit is contained in:
@@ -0,0 +1,161 @@
|
||||
---
|
||||
name: woocommerce-cli
|
||||
description: Gestão WooCommerce via WP-CLI no servidor CWP. Cobre produtos, encomendas, clientes, shipping, gateways de pagamento, importação/exportação em massa e automação.
|
||||
layer: wiki
|
||||
---
|
||||
|
||||
# /woocommerce-cli — WooCommerce via WP-CLI no CWP
|
||||
|
||||
Gestão completa de lojas WooCommerce via linha de comandos no servidor CWP. Cobre produtos, encomendas, clientes, configuração, automação e scripting.
|
||||
|
||||
**Servidor:** server.descomplicar.pt (176.9.3.158) | porta SSH: 9443
|
||||
**Manual:** `Hub/06-Operacoes/Documentacao/Manuais/WooCommerce com WP-CLI_ Guia Completo.md`
|
||||
**Skill relacionada:** `/woocommerce` — desenvolvimento e extensões WooCommerce
|
||||
|
||||
---
|
||||
|
||||
## Contexto CWP — Regras Obrigatórias
|
||||
|
||||
```bash
|
||||
# 1. SEMPRE prefixar com PHP completo
|
||||
# 2. SEMPRE --allow-root (CWP executa como root)
|
||||
# 3. SEMPRE --user=1 em operações de escrita (mapeamento REST API)
|
||||
# 4. SEMPRE --path= (múltiplos sites no mesmo servidor)
|
||||
|
||||
# Formato base
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc <ENTIDADE> <OP> \
|
||||
--user=1 --allow-root --path=/home/USER/public_html
|
||||
|
||||
# Variável de conveniência para scripts
|
||||
PATH_WP="/home/USER/public_html"
|
||||
WP="/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp --allow-root --path=$PATH_WP"
|
||||
$WP wc product list --user=1
|
||||
```
|
||||
|
||||
### Versões PHP disponíveis
|
||||
|
||||
| Alias | PHP | Path |
|
||||
|-------|-----|------|
|
||||
| `wp74` | 7.4 | `/opt/alt/php-fpm74/usr/bin/php` |
|
||||
| `wp82` | 8.2 | `/opt/alt/php-fpm82/usr/bin/php` |
|
||||
| `wp83` | 8.3 | `/opt/alt/php-fpm83/usr/bin/php` (recomendado) |
|
||||
|
||||
### Parâmetros essenciais WC CLI
|
||||
|
||||
| Parâmetro | Uso |
|
||||
|-----------|-----|
|
||||
| `--user=1` | Obrigatório em escrita (autenticação REST API) |
|
||||
| `--porcelain` | Retorna apenas ID numérico (para scripts) |
|
||||
| `--format=table\|json\|csv\|ids` | Formato do output |
|
||||
| `--fields=id,name,price` | Limitar campos (reduz memória) |
|
||||
| `--per_page=100` | Limite máximo da API (paginar para mais) |
|
||||
| `--force` | Eliminar definitivamente (sem lixo) |
|
||||
|
||||
---
|
||||
|
||||
## Produtos
|
||||
|
||||
### Operações Comuns
|
||||
|
||||
```bash
|
||||
PATH_WP="/home/USER/public_html"
|
||||
|
||||
# Listar produtos
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product list \
|
||||
--user=1 --fields=id,name,price,stock_quantity --format=table \
|
||||
--allow-root --path=$PATH_WP
|
||||
|
||||
# Criar produto simples
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product create \
|
||||
--user=1 \
|
||||
--name="Produto Exemplo" \
|
||||
--type=simple \
|
||||
--regular_price="29.99" \
|
||||
--sku="PROD-001" \
|
||||
--manage_stock=true \
|
||||
--stock_quantity=100 \
|
||||
--status=publish \
|
||||
--allow-root --path=$PATH_WP
|
||||
|
||||
# Actualizar preço e stock
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product update 456 \
|
||||
--user=1 \
|
||||
--regular_price="34.99" \
|
||||
--stock_quantity=50 \
|
||||
--allow-root --path=$PATH_WP
|
||||
|
||||
# Eliminar definitivamente
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product delete 456 \
|
||||
--user=1 --force --allow-root --path=$PATH_WP
|
||||
```
|
||||
|
||||
### Produto Variável (capturar ID)
|
||||
|
||||
```bash
|
||||
# 1. Criar produto pai (--porcelain retorna só o ID)
|
||||
PARENT_ID=$(/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product create \
|
||||
--user=1 --name="T-Shirt" --type=variable \
|
||||
--attributes='[{"name":"Tamanho","variation":true,"visible":true,"options":["S","M","L","XL"]}]' \
|
||||
--porcelain --allow-root --path=$PATH_WP)
|
||||
|
||||
# 2. Criar variação
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product_variation create $PARENT_ID \
|
||||
--user=1 \
|
||||
--regular_price="24.99" \
|
||||
--sku="TSHIRT-M" \
|
||||
--attributes='[{"name":"Tamanho","option":"M"}]' \
|
||||
--manage_stock=true --stock_quantity=30 \
|
||||
--allow-root --path=$PATH_WP
|
||||
```
|
||||
|
||||
### Actualização em Massa por SKU
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
PATH_WP="/home/USER/public_html"
|
||||
WP="/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp --allow-root --path=$PATH_WP"
|
||||
|
||||
IDS=$($WP wc product list --user=1 --sku="TSHIRT-*" --format=ids)
|
||||
for ID in $IDS; do
|
||||
$WP wc product update $ID --user=1 --stock_quantity=200 --porcelain
|
||||
done
|
||||
```
|
||||
|
||||
### Exportar Catálogo
|
||||
|
||||
```bash
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product list \
|
||||
--user=1 --per_page=5000 --format=csv \
|
||||
--allow-root --path=$PATH_WP \
|
||||
> /home/USER/catalogo_$(date +%Y%m%d).csv
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Encomendas
|
||||
|
||||
```bash
|
||||
PATH_WP="/home/USER/public_html"
|
||||
|
||||
# Listar encomendas em processamento
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc shop_order list \
|
||||
--user=1 --status=processing \
|
||||
--fields=id,total,date_created \
|
||||
--allow-root --path=$PATH_WP
|
||||
|
||||
# Actualizar estado
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc shop_order update 355 \
|
||||
--user=1 --status=completed \
|
||||
--allow-root --path=$PATH_WP
|
||||
|
||||
# Adicionar nota ao cliente
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc order_note create 355 \
|
||||
--user=1 \
|
||||
--note="Encomenda expedida. Rastreio: PT-99887766." \
|
||||
--customer_note=true \
|
||||
--allow-root --path=$PATH_WP
|
||||
|
||||
# Conclusão massiva de todas as encomendas em processamento
|
||||
WP="/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp --allow-root --path=$PATH_WP"
|
||||
for ID in $($WP wc shop_order list --user=1 --status=processing --format=ids); do
|
||||
$WP wc shop_order update $ID --us
|
||||
Reference in New Issue
Block a user