yingtai / dev /scripts /init.sh
3v324v23's picture
Configure Dockerfile and update README.md
03eca9a
#!/usr/bin/env sh
set -eu
cd /var/www/html
if wp core is-installed >/dev/null 2>&1; then
echo "wp already installed"
else
wp core install \
--url="http://localhost:8088" \
--title="Indo MVP" \
--admin_user="admin" \
--admin_password="admin123456" \
--admin_email="admin@example.com" \
--skip-email
fi
wp config set WP_ENVIRONMENT_TYPE local --type=constant >/dev/null 2>&1 || true
wp option update timezone_string "Asia/Jakarta"
wp option update permalink_structure "/%postname%/"
wp rewrite flush --hard
wp plugin install woocommerce --activate
wp plugin activate indo-mvp-core
wp theme activate indo-trade
wp option update indo_mvp_enable_chatbox "1"
wp option update indo_mvp_enable_inquiry "0"
wp option update indo_mvp_enable_whatsapp "0"
wp option update indo_mvp_catalog_mode "1"
wp option update indo_mvp_whatsapp_number "628123456789"
wp option update indo_mvp_notify_emails "admin@example.com"
wp option update indo_mvp_default_country "Indonesia"
wp option update indo_mvp_auto_inject_product_cta "1"
create_page () {
title="$1"
slug="$2"
content="$3"
template="${4:-}"
if wp post list --post_type=page --name="$slug" --field=ID --format=ids | grep -q '[0-9]'; then
echo "page exists: $slug"
return
fi
id="$(wp post create --post_type=page --post_status=publish --post_title="$title" --post_name="$slug" --post_content="$content" --porcelain)"
echo "page created: $slug (#$id)"
if [ -n "$template" ]; then
wp post meta update "$id" _wp_page_template "$template" >/dev/null
fi
}
create_page "Home" "home" "## Pemasok & Produsen untuk Pasar Indonesia\n\nLihat produk, minta penawaran, atau chat WhatsApp untuk respon cepat.\n\nProduk:\n\nhttp://localhost:8088/shop/"
create_page "Produk" "products" "## Produk\n\nKunjungi halaman produk kami:\n\nhttp://localhost:8088/shop/"
create_page "Tentang Kami" "about-us" "## Tentang Kami\n\nKami adalah produsen & pemasok yang fokus pada kebutuhan pasar Indonesia.\n\nUntuk penawaran cepat, silakan hubungi kami via WhatsApp."
create_page "Hubungi Kami" "contact" "## Hubungi Kami\n\n**WhatsApp**: +62 xxx xxxx xxxx\n\n**Email**: sales@domain.com\n\nJam kerja: Senin–Jumat, 09:00–18:00 (WIB)"
create_page "FAQ" "faq" "## FAQ\n\n**1) Berapa MOQ?**\n\nMOQ tergantung produk dan spesifikasi."
create_page "Shop" "shop" ""
privacy_id="$(wp post list --post_type=page --name="privacy-policy" --field=ID --format=ids || true)"
if [ -z "$privacy_id" ]; then
privacy_id="$(wp post create --post_type=page --post_status=publish --post_title="Kebijakan Privasi" --post_name="privacy-policy" --post_content="## Kebijakan Privasi\n\nKami menghargai privasi Anda." --porcelain)"
echo "page created: privacy-policy (#$privacy_id)"
fi
wp option update wp_page_for_privacy_policy "$privacy_id"
create_page "Minta Penawaran" "request-a-quote" "## Minta Penawaran\n\nMohon isi form berikut.\n\n[indo_inquiry_form]\n\n[indo_whatsapp_button label=\"WhatsApp\"]" "page-templates/page-inquiry.php"
home_id="$(wp post list --post_type=page --name="home" --field=ID --format=ids | head -n1)"
wp option update show_on_front "page"
wp option update page_on_front "$home_id"
shop_id="$(wp post list --post_type=page --name="shop" --field=ID --format=ids | head -n1)"
wp option update woocommerce_shop_page_id "$shop_id"
ensure_term () {
tax="$1"
name="$2"
slug="$3"
if wp term list "$tax" --field=slug | grep -q "^$slug$"; then
return
fi
wp term create "$tax" "$name" --slug="$slug" >/dev/null
}
ensure_term product_type "simple" "simple"
ensure_term product_cat "Sample" "sample"
create_product () {
title="$1"
slug="$2"
price="$3"
if wp post list --post_type=product --name="$slug" --field=ID --format=ids | grep -q '[0-9]'; then
echo "product exists: $slug"
return
fi
id="$(wp post create --post_type=product --post_status=publish --post_title="$title" --post_name="$slug" --porcelain)"
wp term set product_type "$id" simple >/dev/null || true
wp term set product_cat "$id" sample >/dev/null || true
wp post meta update "$id" _regular_price "$price" >/dev/null
wp post meta update "$id" _price "$price" >/dev/null
wp post meta update "$id" _stock_status "instock" >/dev/null
wp post meta update "$id" _manage_stock "no" >/dev/null
echo "product created: $slug (#$id)"
}
create_product "Sample Product A" "sample-product-a" "12"
create_product "Sample Product B" "sample-product-b" "18"
create_product "Sample Product C" "sample-product-c" "25"
create_product "Sample Product D" "sample-product-d" "9"
create_product "Sample Product E" "sample-product-e" "30"
create_product "Sample Product F" "sample-product-f" "15"
create_product "Sample Product G" "sample-product-g" "22"
create_product "Sample Product H" "sample-product-h" "16"
create_product "Sample Product I" "sample-product-i" "28"
create_product "Sample Product J" "sample-product-j" "11"
menu_id="$(wp menu list --fields=term_id,name --format=csv | tail -n +2 | awk -F, '$2=="Primary"{print $1}' | head -n1 || true)"
if [ -z "$menu_id" ]; then
menu_id="$(wp menu create "Primary" --porcelain)"
fi
wp menu location assign "$menu_id" primary >/dev/null || true
for slug in home products about-us contact faq request-a-quote; do
pid="$(wp post list --post_type=page --name="$slug" --field=ID --format=ids | head -n1)"
if [ -n "$pid" ]; then
wp menu item add-post "$menu_id" "$pid" >/dev/null || true
fi
done
if [ -n "$shop_id" ]; then
wp menu item add-post "$menu_id" "$shop_id" >/dev/null || true
fi
echo "done: http://localhost:8088 (admin/admin123456)"