feat: sync all plugins, skills, agents updates
New plugins: core-tools New skills: auto-expense, ticket-triage, design, security-check, aiktop-tasks, daily-digest, imap-triage, index-update, mindmap, notebooklm, proc-creator, tasks-overview, validate-component, perfex-module, report, calendar-manager New agents: design-critic, design-generator, design-lead, design-prompt-architect, design-researcher, compliance-auditor, metabase-analyst, gitea-integration-specialist Updated: all plugin configs, knowledge datasets, existing skills Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
621
wordpress/skills/woocommerce-cli/references/commands.md
Normal file
621
wordpress/skills/woocommerce-cli/references/commands.md
Normal file
@@ -0,0 +1,621 @@
|
||||
# WooCommerce WP-CLI — Referência Completa (CWP)
|
||||
|
||||
**Manual Hub:** `06-Operacoes/Documentacao/Manuais/WooCommerce com WP-CLI_ Guia Completo.md`
|
||||
|
||||
---
|
||||
|
||||
## Namespace e Entidades Disponíveis
|
||||
|
||||
O WooCommerce CLI opera sob `wp wc`. Todas as operações mapeiam para REST API v3.
|
||||
|
||||
| Entidade | Comando Base |
|
||||
|----------|-------------|
|
||||
| `customer` | Contas, moradas, métricas |
|
||||
| `product` | Inventário, preços, stock |
|
||||
| `product_cat` / `product_tag` | Categorias e tags |
|
||||
| `product_attribute` | Atributos globais |
|
||||
| `product_variation` | Variações de produto variável |
|
||||
| `shop_order` | Encomendas |
|
||||
| `order_note` | Notas de encomenda |
|
||||
| `shop_coupon` | Cupões de desconto |
|
||||
| `setting` | Settings WooCommerce |
|
||||
| `shipping_zone` | Zonas de envio |
|
||||
| `shipping_zone_location` | Localizações por zona |
|
||||
| `shipping_zone_method` | Métodos por zona |
|
||||
| `payment_gateway` | Gateways de pagamento |
|
||||
| `tax` | Taxas de imposto |
|
||||
| `tax_class` | Classes de imposto |
|
||||
| `tool` | Ferramentas de manutenção |
|
||||
| `webhook` | Webhooks server-to-server |
|
||||
|
||||
---
|
||||
|
||||
## Tipos de Produto — Exemplos Completos
|
||||
|
||||
### Produto Simples
|
||||
|
||||
```bash
|
||||
PATH_WP="/home/USER/public_html"
|
||||
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product create \
|
||||
--user=1 \
|
||||
--name="T-Shirt Premium Algodão Orgânico" \
|
||||
--type=simple \
|
||||
--regular_price="29.99" \
|
||||
--sale_price="24.99" \
|
||||
--sku="TSHIRT-PREM-001" \
|
||||
--manage_stock=true \
|
||||
--stock_quantity=150 \
|
||||
--status=publish \
|
||||
--description="Descrição completa do produto." \
|
||||
--short_description="Descrição curta para listagens." \
|
||||
--allow-root --path=$PATH_WP
|
||||
```
|
||||
|
||||
### Produto Virtual (sem envio)
|
||||
|
||||
```bash
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product create \
|
||||
--user=1 \
|
||||
--name="Consulta Online 1h" \
|
||||
--type=simple \
|
||||
--virtual=true \
|
||||
--regular_price="75.00" \
|
||||
--sku="CONSULT-1H" \
|
||||
--status=publish \
|
||||
--allow-root --path=$PATH_WP
|
||||
```
|
||||
|
||||
### Produto Downloadable
|
||||
|
||||
```bash
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product create \
|
||||
--user=1 \
|
||||
--name="eBook Guia SEO 2026" \
|
||||
--type=simple \
|
||||
--virtual=true \
|
||||
--downloadable=true \
|
||||
--regular_price="19.90" \
|
||||
--sku="EBOOK-SEO-2026" \
|
||||
--downloads='[{"name":"eBook SEO 2026","file":"https://site.pt/ficheiros/ebook-seo-2026.pdf"}]' \
|
||||
--download_limit=3 \
|
||||
--download_expiry=365 \
|
||||
--allow-root --path=$PATH_WP
|
||||
```
|
||||
|
||||
### Produto Externo/Afiliado
|
||||
|
||||
```bash
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product create \
|
||||
--user=1 \
|
||||
--name="Software Cloud Parceiro" \
|
||||
--type=external \
|
||||
--regular_price="99.00" \
|
||||
--product_url="https://parceiro.com/checkout/123" \
|
||||
--button_text="Comprar na Loja do Parceiro" \
|
||||
--sku="EXT-SOFT-123" \
|
||||
--allow-root --path=$PATH_WP
|
||||
```
|
||||
|
||||
### Produto Agrupado (Grouped)
|
||||
|
||||
```bash
|
||||
# 1. Criar produto pai agrupado
|
||||
GROUP_ID=$(/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product create \
|
||||
--user=1 --name="Pack Bundle Completo" --type=grouped --sku="PACK-BUNDLE-001" \
|
||||
--porcelain --allow-root --path=$PATH_WP)
|
||||
|
||||
# 2. Criar filho vinculado ao grupo
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product create \
|
||||
--user=1 \
|
||||
--name="Item A do Pack" \
|
||||
--type=simple \
|
||||
--regular_price="15.00" \
|
||||
--sku="PACK-ITEM-A" \
|
||||
--parent_id=$GROUP_ID \
|
||||
--allow-root --path=$PATH_WP
|
||||
```
|
||||
|
||||
### Produto Variável com Variações
|
||||
|
||||
```bash
|
||||
# 1. Criar produto pai variável
|
||||
PARENT_ID=$(/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product create \
|
||||
--user=1 \
|
||||
--name="Sapatilhas Running" \
|
||||
--type=variable \
|
||||
--attributes='[{"name":"Tamanho","variation":true,"visible":true,"options":["39","40","41","42","43"]},{"name":"Cor","variation":true,"visible":true,"options":["Preto","Branco"]}]' \
|
||||
--porcelain --allow-root --path=$PATH_WP)
|
||||
|
||||
# 2. Criar variação (Tamanho 40, Cor Preto)
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product_variation create $PARENT_ID \
|
||||
--user=1 \
|
||||
--regular_price="89.99" \
|
||||
--sku="RUN-40-PT" \
|
||||
--attributes='[{"name":"Tamanho","option":"40"},{"name":"Cor","option":"Preto"}]' \
|
||||
--manage_stock=true \
|
||||
--stock_quantity=25 \
|
||||
--allow-root --path=$PATH_WP
|
||||
```
|
||||
|
||||
### Produto com Categorias e Atributos Visíveis
|
||||
|
||||
```bash
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product create \
|
||||
--user=1 \
|
||||
--name="Casaco Impermeável Inverno" \
|
||||
--type=simple \
|
||||
--regular_price="120.00" \
|
||||
--categories='[{"id":15},{"id":22}]' \
|
||||
--attributes='[{"name":"Material","visible":true,"options":["Poliéster","Gore-Tex"]},{"name":"Cor","visible":true,"options":["Preto","Azul Marinho"]}]' \
|
||||
--allow-root --path=$PATH_WP
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Gestão de Stock
|
||||
|
||||
```bash
|
||||
PATH_WP="/home/USER/public_html"
|
||||
|
||||
# Actualizar stock de produto único
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product update 456 \
|
||||
--user=1 \
|
||||
--manage_stock=true \
|
||||
--stock_quantity=75 \
|
||||
--stock_status=instock \
|
||||
--allow-root --path=$PATH_WP
|
||||
|
||||
# Colocar produto fora de stock (sem alterar quantidade)
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product update 456 \
|
||||
--user=1 --stock_status=outofstock \
|
||||
--allow-root --path=$PATH_WP
|
||||
|
||||
# Actualizar stock em massa por prefixo SKU
|
||||
WP="/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp --allow-root --path=$PATH_WP"
|
||||
for ID in $($WP wc product list --user=1 --sku="TSHIRT-*" --format=ids); do
|
||||
$WP wc product update $ID --user=1 --stock_quantity=200 --porcelain
|
||||
done
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Gestão de Encomendas
|
||||
|
||||
### Consulta e Filtros
|
||||
|
||||
```bash
|
||||
PATH_WP="/home/USER/public_html"
|
||||
|
||||
# Encomendas por estado
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc shop_order list \
|
||||
--user=1 --status=processing \
|
||||
--fields=id,total,currency,date_created \
|
||||
--format=table \
|
||||
--allow-root --path=$PATH_WP
|
||||
|
||||
# Estados disponíveis: pending, processing, on-hold, completed, cancelled, refunded, failed
|
||||
```
|
||||
|
||||
### Actualizar Estado
|
||||
|
||||
```bash
|
||||
/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 (Visível ao Cliente)
|
||||
|
||||
```bash
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc order_note create 355 \
|
||||
--user=1 \
|
||||
--note="Expedido via CTT. Rastreio: PT-99887766." \
|
||||
--customer_note=true \
|
||||
--allow-root --path=$PATH_WP
|
||||
```
|
||||
|
||||
### Conclusão Massiva com Relatório
|
||||
|
||||
```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"
|
||||
|
||||
ORDER_IDS=$($WP wc shop_order list --user=1 --status=processing --format=ids)
|
||||
TOTAL=0
|
||||
|
||||
for ID in $ORDER_IDS; do
|
||||
$WP wc shop_order update $ID --user=1 --status=completed --porcelain
|
||||
TOTAL=$((TOTAL+1))
|
||||
echo "[OK] Encomenda #$ID concluída."
|
||||
done
|
||||
|
||||
echo "Total processado: $TOTAL encomendas."
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Clientes
|
||||
|
||||
```bash
|
||||
PATH_WP="/home/USER/public_html"
|
||||
|
||||
# Listar com métricas de lifetime value
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc customer list \
|
||||
--user=1 \
|
||||
--role=customer \
|
||||
--fields=id,email,orders_count,total_spent \
|
||||
--format=table \
|
||||
--allow-root --path=$PATH_WP
|
||||
|
||||
# Criar cliente completo (B2B)
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc customer create \
|
||||
--user=1 \
|
||||
--email="empresa@exemplo.pt" \
|
||||
--first_name="Carlos" \
|
||||
--last_name="Mendes" \
|
||||
--username="carlosmendes_b2b" \
|
||||
--password="SenhaForte!2026" \
|
||||
--billing='{"first_name":"Carlos","last_name":"Mendes","company":"Empresa Lda","address_1":"Avenida da Liberdade 123","city":"Lisboa","postcode":"1250-140","country":"PT"}' \
|
||||
--shipping='{"first_name":"Carlos","last_name":"Mendes","company":"Armazém Empresa","address_1":"Rua da Indústria 45","city":"Sintra","postcode":"2710-000","country":"PT"}' \
|
||||
--allow-root --path=$PATH_WP
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Shipping Zones — Configuração Completa
|
||||
|
||||
```bash
|
||||
PATH_WP="/home/USER/public_html"
|
||||
|
||||
# 1. Criar zona geográfica
|
||||
ZONE_ID=$(/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc shipping_zone create \
|
||||
--user=1 --name="Portugal Continental" \
|
||||
--porcelain --allow-root --path=$PATH_WP)
|
||||
|
||||
# 2. Adicionar países à zona
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc shipping_zone_location create $ZONE_ID \
|
||||
--user=1 --code="PT" --type=country \
|
||||
--allow-root --path=$PATH_WP
|
||||
|
||||
# 3. Adicionar método de portes fixos
|
||||
METHOD_ID=$(/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc shipping_zone_method create $ZONE_ID \
|
||||
--user=1 --method_id=flat_rate \
|
||||
--porcelain --allow-root --path=$PATH_WP)
|
||||
|
||||
# 4. Definir custo
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc shipping_zone_method update $ZONE_ID $METHOD_ID \
|
||||
--user=1 --settings='{"cost":"3.99","title":"Portes Padrão"}' \
|
||||
--allow-root --path=$PATH_WP
|
||||
|
||||
# 5. Adicionar envio gratuito acima de X€
|
||||
FREE_ID=$(/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc shipping_zone_method create $ZONE_ID \
|
||||
--user=1 --method_id=free_shipping \
|
||||
--porcelain --allow-root --path=$PATH_WP)
|
||||
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc shipping_zone_method update $ZONE_ID $FREE_ID \
|
||||
--user=1 --settings='{"requires":"min_amount","min_amount":"50"}' \
|
||||
--allow-root --path=$PATH_WP
|
||||
|
||||
# Listar todas as zonas
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc shipping_zone list \
|
||||
--user=1 --format=table --allow-root --path=$PATH_WP
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Payment Gateways
|
||||
|
||||
```bash
|
||||
PATH_WP="/home/USER/public_html"
|
||||
|
||||
# Listar todos os gateways
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc payment_gateway list \
|
||||
--user=1 --fields=id,title,enabled --allow-root --path=$PATH_WP
|
||||
|
||||
# Activar gateway
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc payment_gateway update bacs \
|
||||
--user=1 --enabled=true --allow-root --path=$PATH_WP
|
||||
|
||||
# Desactivar gateway (emergência)
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc payment_gateway update paypal \
|
||||
--user=1 --enabled=false --allow-root --path=$PATH_WP
|
||||
|
||||
# Configurar Stripe em modo teste
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc payment_gateway update stripe \
|
||||
--user=1 \
|
||||
--settings='{"testmode":"yes","test_publishable_key":"pk_test_XXXX","test_secret_key":"sk_test_XXXX"}' \
|
||||
--allow-root --path=$PATH_WP
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Tributação
|
||||
|
||||
```bash
|
||||
PATH_WP="/home/USER/public_html"
|
||||
|
||||
# Criar taxa IVA 23% (Portugal)
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc tax create \
|
||||
--user=1 \
|
||||
--country=PT \
|
||||
--rate="23" \
|
||||
--name="IVA 23%" \
|
||||
--class=standard \
|
||||
--allow-root --path=$PATH_WP
|
||||
|
||||
# Criar taxa reduzida 6%
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc tax create \
|
||||
--user=1 --country=PT --rate="6" --name="IVA 6%" --class=reduced-rate \
|
||||
--allow-root --path=$PATH_WP
|
||||
|
||||
# Criar classe de taxa personalizada
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc tax_class create \
|
||||
--user=1 --name="Taxa Super Reduzida" \
|
||||
--allow-root --path=$PATH_WP
|
||||
|
||||
# Activar cálculo de impostos
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp option update woocommerce_calc_taxes "yes" \
|
||||
--allow-root --path=$PATH_WP
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Cupões
|
||||
|
||||
```bash
|
||||
PATH_WP="/home/USER/public_html"
|
||||
|
||||
# Criar cupão de desconto percentual
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc shop_coupon create \
|
||||
--user=1 \
|
||||
--code="VERAO2026" \
|
||||
--discount_type=percent \
|
||||
--amount="15" \
|
||||
--usage_limit=500 \
|
||||
--expiry_date="2026-09-30" \
|
||||
--allow-root --path=$PATH_WP
|
||||
|
||||
# Criar cupão de desconto fixo
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc shop_coupon create \
|
||||
--user=1 \
|
||||
--code="DESCONTO10" \
|
||||
--discount_type=fixed_cart \
|
||||
--amount="10" \
|
||||
--minimum_amount="50" \
|
||||
--allow-root --path=$PATH_WP
|
||||
|
||||
# Listar cupões activos
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc shop_coupon list \
|
||||
--user=1 --fields=id,code,amount,discount_type,usage_count \
|
||||
--format=table --allow-root --path=$PATH_WP
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Ferramentas de Manutenção
|
||||
|
||||
```bash
|
||||
PATH_WP="/home/USER/public_html"
|
||||
WP="/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp --allow-root --path=$PATH_WP"
|
||||
|
||||
# Listar todas as ferramentas
|
||||
$WP wc tool list --user=1 --fields=id,name,description --format=table
|
||||
|
||||
# Limpar transients
|
||||
$WP wc tool run clear_transients --user=1
|
||||
|
||||
# Recalcular contadores de taxonomias (categorias/tags)
|
||||
$WP wc tool run recount_terms --user=1
|
||||
|
||||
# Eliminar variações órfãs
|
||||
$WP wc tool run delete_orphaned_variations --user=1
|
||||
|
||||
# Limpar sessões e carrinhos abandonados
|
||||
$WP wc tool run clear_sessions --user=1
|
||||
|
||||
# Regenerar imagens de produto
|
||||
$WP wc tool run regenerate_thumbnails --user=1
|
||||
|
||||
# Regenerar dados de lookup (tabela de relatórios)
|
||||
$WP wc tool run clear_lookup_table --user=1
|
||||
|
||||
# Sequência completa de limpeza (recomendada após alterações massivas)
|
||||
$WP wc tool run delete_orphaned_variations --user=1
|
||||
$WP wc tool run recount_terms --user=1
|
||||
$WP wc tool run clear_sessions --user=1
|
||||
$WP wc tool run clear_transients --user=1
|
||||
$WP cache flush
|
||||
$WP rewrite flush
|
||||
echo "Limpeza concluída."
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## WP All Import — Importação Massiva
|
||||
|
||||
```bash
|
||||
PATH_WP="/home/USER/public_html"
|
||||
|
||||
# Verificar se plugin está activo
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp plugin is-active wp-all-import-pro \
|
||||
--allow-root --path=$PATH_WP && echo "Activo" || echo "Inactivo"
|
||||
|
||||
# Executar perfil de importação pré-configurado (ID=5)
|
||||
# Configurar mapeamentos no painel WP All Import primeiro
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp all-import run 5 \
|
||||
--force-run --disable-log \
|
||||
--allow-root --path=$PATH_WP
|
||||
|
||||
# Listar perfis de importação
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp all-import status \
|
||||
--allow-root --path=$PATH_WP
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Importação via CSV (Script)
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# Importar produtos a partir de CSV (colunas: SKU,TITULO,PRECO)
|
||||
PATH_WP="/home/USER/public_html"
|
||||
WP="/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp --allow-root --path=$PATH_WP"
|
||||
CSV="/home/USER/produtos.csv"
|
||||
ERROS=0
|
||||
OK=0
|
||||
|
||||
tail -n +2 "$CSV" | while IFS=, read -r SKU TITULO PRECO; do
|
||||
ID=$($WP wc product create \
|
||||
--user=1 \
|
||||
--sku="$SKU" \
|
||||
--name="$TITULO" \
|
||||
--regular_price="$PRECO" \
|
||||
--type=simple \
|
||||
--status=publish \
|
||||
--porcelain 2>/dev/null)
|
||||
|
||||
if [ -n "$ID" ] && [ "$ID" -gt 0 ] 2>/dev/null; then
|
||||
echo "[OK] $SKU → ID $ID"
|
||||
OK=$((OK+1))
|
||||
else
|
||||
echo "[ERRO] $SKU — falhou"
|
||||
ERROS=$((ERROS+1))
|
||||
fi
|
||||
done
|
||||
|
||||
echo "Importação concluída. OK: $OK | Erros: $ERROS"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Scripts de Manutenção
|
||||
|
||||
### Normalização Preventiva de Dados
|
||||
|
||||
```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"
|
||||
|
||||
echo "=== LIMPEZA WOOCOMMERCE ==="
|
||||
echo "Site: $PATH_WP | $(date)"
|
||||
|
||||
$WP wc tool run delete_orphaned_variations --user=1 --quiet && echo "[OK] Variações órfãs"
|
||||
$WP wc tool run recount_terms --user=1 --quiet && echo "[OK] Contadores taxonomias"
|
||||
$WP wc tool run clear_sessions --user=1 --quiet && echo "[OK] Sessões"
|
||||
$WP wc tool run clear_transients --user=1 --quiet && echo "[OK] Transients"
|
||||
$WP cache flush && echo "[OK] Object cache"
|
||||
$WP rewrite flush && echo "[OK] Rewrite rules"
|
||||
$WP db optimize --quiet && echo "[OK] BD optimizada"
|
||||
|
||||
echo "=== CONCLUÍDO ==="
|
||||
```
|
||||
|
||||
### Manutenção WooCommerce em Todos os Sites CWP
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
find /home -name wp-config.php -not -path "*/backup*" 2>/dev/null | while read config; do
|
||||
dir=$(dirname "$config")
|
||||
user=$(stat -c '%U' "$dir")
|
||||
|
||||
php_fpm=$(ps aux | grep "php-fpm: pool ${user}" | grep -v grep | head -1 | grep -o 'php-fpm[0-9][0-9]' | head -1)
|
||||
php_ver=${php_fpm:-php-fpm82}
|
||||
php_bin="/opt/alt/${php_ver}/usr/bin/php"
|
||||
WP="$php_bin /usr/local/bin/wp --allow-root --path=$dir"
|
||||
|
||||
echo "=== $user ($dir) ==="
|
||||
|
||||
# Verificar se WooCommerce está activo
|
||||
if $WP plugin is-active woocommerce 2>/dev/null; then
|
||||
$WP wc tool run clear_transients --user=1 --quiet 2>/dev/null
|
||||
$WP wc tool run recount_terms --user=1 --quiet 2>/dev/null
|
||||
echo " [WC] Limpeza WooCommerce concluída."
|
||||
else
|
||||
echo " [--] WooCommerce não activo."
|
||||
fi
|
||||
done
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Limitações e Bugs Conhecidos
|
||||
|
||||
### Memory Exhaustion — Override CWP
|
||||
|
||||
```bash
|
||||
# -d memory_limit antes de /usr/local/bin/wp
|
||||
/opt/alt/php-fpm83/usr/bin/php -d memory_limit=2G /usr/local/bin/wp wc product list \
|
||||
--user=1 --per_page=100 --format=ids \
|
||||
--allow-root --path=/home/USER/public_html
|
||||
|
||||
# Para catálogos muito grandes: iterar com --per_page=100 e --page=N
|
||||
for PAGE in 1 2 3 4 5; do
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product list \
|
||||
--user=1 --per_page=100 --page=$PAGE --format=ids \
|
||||
--allow-root --path=/home/USER/public_html
|
||||
done
|
||||
```
|
||||
|
||||
### Bug `wp wc update` — Versão BD não actualiza
|
||||
|
||||
```bash
|
||||
# Verificar versão instalada
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp plugin get woocommerce \
|
||||
--field=version --allow-root --path=/home/USER/public_html
|
||||
|
||||
# Forçar actualização manual do registo BD
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp option update woocommerce_db_version "9.X.X" \
|
||||
--allow-root --path=/home/USER/public_html
|
||||
```
|
||||
|
||||
### Bypass Wizard de Onboarding
|
||||
|
||||
```bash
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp option update woocommerce_onboarding_opt_in "yes" \
|
||||
--allow-root --path=/home/USER/public_html
|
||||
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp option update woocommerce_task_list_hidden "yes" \
|
||||
--allow-root --path=/home/USER/public_html
|
||||
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp option update woocommerce_setup_wizard_data \
|
||||
'{"setup_wizard":"completed"}' --allow-root --path=/home/USER/public_html
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Settings via wp_options
|
||||
|
||||
Algumas configurações WooCommerce não têm endpoint CLI nativo. Usar `wp option update` directamente:
|
||||
|
||||
```bash
|
||||
PATH_WP="/home/USER/public_html"
|
||||
|
||||
# Moeda
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp option update woocommerce_currency "EUR" \
|
||||
--allow-root --path=$PATH_WP
|
||||
|
||||
# Posição do símbolo de moeda
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp option update woocommerce_currency_pos "right_space" \
|
||||
--allow-root --path=$PATH_WP
|
||||
|
||||
# Separadores de preço (PT-PT)
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp option update woocommerce_price_thousand_sep "." \
|
||||
--allow-root --path=$PATH_WP
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp option update woocommerce_price_decimal_sep "," \
|
||||
--allow-root --path=$PATH_WP
|
||||
|
||||
# País de base da loja
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp option update woocommerce_default_country "PT" \
|
||||
--allow-root --path=$PATH_WP
|
||||
|
||||
# Activar impostos
|
||||
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp option update woocommerce_calc_taxes "yes" \
|
||||
--allow-root --path=$PATH_WP
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
*Referência WooCommerce CLI CWP | Descomplicar® | v1.0.0 | 18-02-2026*
|
||||
Reference in New Issue
Block a user