惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
Google DeepMind News
Google DeepMind News
Hugging Face - Blog
Hugging Face - Blog
D
Docker
F
Fortinet All Blogs
博客园 - 三生石上(FineUI控件)
Project Zero
Project Zero
Engineering at Meta
Engineering at Meta
J
Java Code Geeks
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Simon Willison's Weblog
Simon Willison's Weblog
S
Security Affairs
NISL@THU
NISL@THU
T
Tor Project blog
A
About on SuperTechFans
宝玉的分享
宝玉的分享
腾讯CDC
S
Schneier on Security
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
P
Privacy & Cybersecurity Law Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Stack Overflow Blog
Stack Overflow Blog
P
Privacy International News Feed
雷峰网
雷峰网
C
Cyber Attacks, Cyber Crime and Cyber Security
Vercel News
Vercel News
Cisco Talos Blog
Cisco Talos Blog
D
DataBreaches.Net
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Google Online Security Blog
Google Online Security Blog
Recorded Future
Recorded Future
L
LINUX DO - 热门话题
Microsoft Security Blog
Microsoft Security Blog
Latest news
Latest news
C
Check Point Blog
有赞技术团队
有赞技术团队
T
The Exploit Database - CXSecurity.com
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
云风的 BLOG
云风的 BLOG
SecWiki News
SecWiki News
Application and Cybersecurity Blog
Application and Cybersecurity Blog
爱范儿
爱范儿
月光博客
月光博客
V
Vulnerabilities – Threatpost
T
Threat Research - Cisco Blogs
P
Palo Alto Networks Blog
T
The Blog of Author Tim Ferriss
C
Cisco Blogs
Webroot Blog
Webroot Blog
S
Security @ Cisco Blogs

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
فهرست هوک های افزونه ووکامرس وردپرس با توضیحات 2026
علی عباسپور · 2026-06-01 · via DEV Community

علی عباسپور

راهنمای جامع هوک‌های ووکامرس (Actions & Filters)

هوک‌ها (Hooks) قلب سفارشی‌سازی ووکامرس هستند. بدون دست زدن به فایل‌های اصلی افزونه، می‌توانید محتوای جدید اضافه کنید، داده‌ها را تغییر دهید و رفتار فروشگاه را دقیقاً مطابق نیاز خود تنظیم کنید.

در این مقاله، تمام هوک‌های اصلی و کاربردی ووکامرس به‌صورت دسته‌بندی‌شده، همراه با توضیح فارسی و مثال‌های عملی گردآوری شده‌اند.


هوک چیست و چه انواعی دارد؟

  • Action Hook (اکشن): در یک نقطهٔ خاص اجرا می‌شود و یک عمل را انجام می‌دهد (مثلاً چاپ یک متن). هیچ مقداری بازگردانده نمی‌شود.
  • Filter Hook (فیلتر): یک مقدار را دریافت می‌کند، آن را تغییر می‌دهد و بازمی‌گرداند (مثلاً تغییر متن یک دکمه یا فیلدهای فرم).

هر هوک می‌تواند پارامترهایی نیز دریافت کند. اولویت (priority) نیز ترتیب اجرای توابع متصل به یک هوک را مشخص می‌کند.


📌 نحوهٔ استفاده از هوک‌ها

// اتصال یک تابع به Action
add_action( 'woocommerce_before_add_to_cart_button', 'my_custom_action' );
function my_custom_action() {
    echo '<p>✓ ارسال رایگان برای این محصول</p>';
}

// اتصال یک تابع به Filter
add_filter( 'woocommerce_product_single_add_to_cart_text', 'my_custom_button_text' );
function my_custom_button_text( $text ) {
    return 'خرید فوری';
}

Enter fullscreen mode Exit fullscreen mode

کدها را در فایل functions.php قالب فرزند (Child Theme) یا یک افزونهٔ اختصاصی قرار دهید.


🛍️ ۱. هوک‌های صفحهٔ فروشگاه و آرشیو محصولات

این هوک‌ها در صفحات فروشگاه، دسته‌بندی‌ها، برچسب‌ها و نتایج جستجو اجرا می‌شوند.

Action Hooks (اکشن‌ها)

هوک (Hook) توضیح فارسی
woocommerce_before_main_content قبل از محتوای اصلی تمام صفحات ووکامرس (باز کردن wrapper اصلی).
woocommerce_after_main_content بعد از محتوای اصلی (بستن wrapper).
woocommerce_archive_description نمایش توضیحات دسته یا فروشگاه.
woocommerce_before_shop_loop قبل از شروع لیست محصولات (جایگاه بنر، ابزار مرتب‌سازی).
woocommerce_before_shop_loop_item در ابتدای هر کارت محصول در حلقه (باز شدن تگ <li>).
woocommerce_before_shop_loop_item_title قبل از عنوان محصول در کارت (جایگاه تصویر).
woocommerce_shop_loop_item_title محل رندر شدن عنوان محصول.
woocommerce_after_shop_loop_item_title بعد از عنوان محصول (جایگاه قیمت و امتیاز).
woocommerce_after_shop_loop_item انتهای کارت محصول (دکمهٔ افزودن به سبد، بستن تگ <li>).
woocommerce_after_shop_loop بعد از اتمام لیست محصولات (صفحه‌بندی).
woocommerce_no_products_found هنگامی که هیچ محصولی یافت نشود.
woocommerce_before_subcategory قبل از نمایش هر زیردسته.
woocommerce_before_subcategory_title قبل از عنوان زیردسته.
woocommerce_shop_loop_subcategory_title محل عنوان زیردسته.
woocommerce_after_subcategory_title بعد از عنوان زیردسته.
woocommerce_after_subcategory بعد از نمایش زیردسته.
woocommerce_product_loop_start قبل از شروع حلقهٔ محصولات (باز کردن تگ <ul>).
woocommerce_product_loop_end بعد از پایان حلقه (بستن تگ <ul>).

Filter Hooks (فیلترها)

هوک توضیح فارسی
loop_shop_per_page تغییر تعداد محصولات در هر صفحه از آرشیو.
loop_shop_columns تغییر تعداد ستون‌های نمایش محصولات.
woocommerce_product_loop_title تغییر عنوان محصول در حلقه.
woocommerce_loop_add_to_cart_link تغییر HTML دکمهٔ "افزودن به سبد خرید" در حلقه.
woocommerce_loop_add_to_cart_args فیلتر آرگومان‌های دکمهٔ افزودن به سبد در حلقه.
woocommerce_product_add_to_cart_text تغییر متن دکمهٔ خرید در صفحات آرشیو.

📄 ۲. هوک‌های صفحهٔ تک محصول

این هوک‌ها ساختار و محتوای صفحهٔ محصول (Single Product) را کنترل می‌کنند.

Action Hooks

هوک توضیح فارسی
woocommerce_before_single_product قبل از بارگذاری کامل صفحهٔ محصول.
woocommerce_before_single_product_summary قبل از بخش خلاصهٔ محصول (معمولاً جای گالری تصاویر).
woocommerce_single_product_summary بخش اصلی خلاصهٔ محصول (عنوان، قیمت، توضیح، دکمه خرید).
woocommerce_before_add_to_cart_form قبل از فرم افزودن به سبد خرید.
woocommerce_before_add_to_cart_button قبل از دکمهٔ افزودن به سبد.
woocommerce_before_add_to_cart_quantity قبل از فیلد تعداد.
woocommerce_after_add_to_cart_quantity بعد از فیلد تعداد.
woocommerce_after_add_to_cart_button بعد از دکمهٔ افزودن به سبد.
woocommerce_after_add_to_cart_form بعد از کل فرم افزودن به سبد.
woocommerce_product_thumbnails محل نمایش تصاویر بندانگشتی گالری.
woocommerce_before_variations_form قبل از فرم انتخاب متغیرها (محصول متغیر).
woocommerce_after_variations_form بعد از فرم متغیرها.
woocommerce_product_meta_start ابتدای بخش متای محصول (دسته‌ها، برچسب‌ها).
woocommerce_product_meta_end انتهای متا.
woocommerce_after_single_product_summary بعد از خلاصهٔ اصلی (جایگاه تب‌ها و محصولات مرتبط).
woocommerce_after_single_product انتهای کامل صفحه.

اولویت‌بندی المان‌های داخل woocommerce_single_product_summary

اولویت محتوای پیش‌فرض
5 عنوان محصول
10 امتیازدهی و قیمت
20 توضیح کوتاه
30 دکمهٔ افزودن به سبد خرید
40 متادیتا (شناسه، دسته‌ها)
50 دکمه‌های اشتراک‌گذاری

با استفاده از پارامتر اولویت می‌توانید محتوای دلخواه را دقیقاً بین این بخش‌ها قرار دهید:

add_action( 'woocommerce_single_product_summary', 'my_custom_info', 25 );
function my_custom_info() {
    echo '<p style="color:red;">فقط ۲ عدد در انبار باقی مانده</p>';
}

Enter fullscreen mode Exit fullscreen mode

Filter Hooks

هوک توضیح فارسی
woocommerce_product_tabs فیلتر آرایهٔ تب‌های محصول (افزودن، حذف، تغییر ترتیب تب‌ها).
woocommerce_product_single_add_to_cart_text تغییر متن دکمهٔ خرید در صفحه محصول.
woocommerce_product_description_heading تغییر عنوان تب "توضیحات".
woocommerce_product_description_tab_title عنوان تب توضیحات.
woocommerce_product_reviews_tab_title عنوان تب نظرات.
woocommerce_product_additional_information_heading عنوان بخش "اطلاعات بیشتر".
woocommerce_product_additional_information_tab_title عنوان تب اطلاعات بیشتر.
woocommerce_output_related_products_args تغییر آرگومان‌های محصولات مرتبط (تعداد، ستون‌ها).
woocommerce_related_products_columns تعداد ستون‌های محصولات مرتبط.
woocommerce_upsell_display نمایش محصولات پیشنهادی (upsells).
woocommerce_get_price_html تغییر HTML نمایش قیمت (در تمام بخش‌ها).

🛒 ۳. هوک‌های سبد خرید

Action Hooks

هوک توضیح فارسی
woocommerce_before_cart قبل از کل صفحهٔ سبد خرید.
woocommerce_before_cart_table قبل از جدول سبد خرید.
woocommerce_before_cart_contents قبل از محتوای ردیف‌های محصولات.
woocommerce_cart_contents داخل ردیف‌های سبد خرید (مناسب برای افزودن ستون جدید).
woocommerce_after_cart_contents بعد از ردیف‌ها.
woocommerce_after_cart_table بعد از جدول سبد خرید.
woocommerce_cart_collaterals بخش جانبی (جمع‌بندی سبد، کد تخفیف).
woocommerce_before_cart_collaterals قبل از بخش جانبی.
woocommerce_before_cart_totals قبل از جدول جمع کل.
woocommerce_cart_totals داخل جدول جمع کل.
woocommerce_after_cart_totals بعد از جدول جمع کل.
woocommerce_after_cart_collaterals بعد از بخش جانبی.
woocommerce_after_cart انتهای صفحه.
woocommerce_cross_sell_display نمایش محصولات cross-sell (پیشنهادهای متقابل).
woocommerce_cart_is_empty وقتی سبد خرید خالی باشد.

Filter Hooks

هوک توضیح فارسی
woocommerce_cart_item_thumbnail تغییر تصویر بندانگشتی آیتم در سبد.
woocommerce_cart_item_name تغییر نام محصول در ردیف سبد.
woocommerce_cart_item_price تغییر قیمت واحد هر آیتم.
woocommerce_cart_item_quantity تغییر فیلد تعداد محصول.
woocommerce_cart_item_subtotal تغییر جمع جزء هر آیتم.
woocommerce_cross_sells_columns تعداد ستون‌های محصولات cross-sell.
woocommerce_add_to_cart_redirect تغییر مسیر پس از افزودن به سبد.
woocommerce_add_cart_item_data افزودن دادهٔ دلخواه به آیتم سبد (قبل از اضافه شدن).
woocommerce_return_to_shop_redirect تغییر لینک دکمهٔ "بازگشت به فروشگاه" در سبد خالی.
woocommerce_cart_shipping_method_full_label تغییر متن و نحوهٔ نمایش روش‌های حمل و نقل به همراه قیمت.

🧾 ۴. هوک‌های تسویه حساب

Action Hooks

هوک توضیح فارسی
woocommerce_before_checkout_form قبل از فرم تسویه حساب.
woocommerce_checkout_before_customer_details قبل از بخش اطلاعات مشتری (صورتحساب/حمل).
woocommerce_checkout_billing بخش فیلدهای صورتحساب.
woocommerce_checkout_shipping بخش فیلدهای حمل و نقل.
woocommerce_checkout_after_customer_details بعد از اطلاعات مشتری.
woocommerce_checkout_before_order_review قبل از بخش مرور سفارش.
woocommerce_checkout_order_review خود بخش مرور سفارش (محصولات، جمع کل، درگاه‌ها).
woocommerce_checkout_after_order_review بعد از مرور سفارش.
woocommerce_review_order_before_payment قبل از گیت‌وی‌های پرداخت.
woocommerce_review_order_after_payment بعد از گیت‌وی‌ها.
woocommerce_review_order_before_submit قبل از دکمهٔ ثبت سفارش.
woocommerce_review_order_after_submit بعد از دکمهٔ ثبت سفارش.
woocommerce_after_checkout_form انتهای فرم.
woocommerce_checkout_process هنگام اعتبارسنجی و ثبت سفارش (مناسب برای بررسی فیلدهای سفارشی).
woocommerce_checkout_update_order_review هنگام به‌روزرسانی بخش مرور سفارش (Ajax).
woocommerce_before_checkout_coupon_form قبل از فرم کوپن در تسویه حساب.
woocommerce_applied_coupon پس از اعمال موفق کوپن.
woocommerce_removed_coupon پس از حذف کوپن.

Filter Hooks

هوک توضیح فارسی
woocommerce_checkout_fields قدرتمندترین فیلتر برای تغییر تمام فیلدهای فرم (حذف، جابجایی، اجباری/اختیاری).
woocommerce_billing_fields فیلتر فقط فیلدهای صورتحساب.
woocommerce_shipping_fields فیلتر فقط فیلدهای حمل و نقل.
woocommerce_default_address_fields فیلدهای پیش‌فرض آدرس (مشترک بین بیلینگ و شیپینگ).
woocommerce_checkout_get_value تغییر مقدار پیش‌فرض یک فیلد.
woocommerce_order_button_text تغییر متن دکمهٔ "ثبت سفارش".
woocommerce_available_payment_gateways فیلتر لیست درگاه‌های پرداخت در دسترس.
woocommerce_cod_process_payment_order_status تغییر وضعیت سفارش برای روش پرداخت در محل.

مثال: غیرضروری کردن فیلد تلفن در تسویه حساب

add_filter( 'woocommerce_checkout_fields', 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {
    $fields['billing']['billing_phone']['required'] = false;
    return $fields;
}

Enter fullscreen mode Exit fullscreen mode


📦 ۵. هوک‌های سفارش‌ها و صفحه تشکر

Action Hooks

هوک توضیح فارسی
woocommerce_new_order به‌محض ایجاد سفارش جدید (قبل از ذخیره‌سازی کامل).
woocommerce_checkout_order_processed بلافاصله پس از پردازش موفق سفارش و ایجاد آبجکت سفارش.
woocommerce_thankyou صفحهٔ تشکر پس از خرید (موفق یا ناموفق). پارامتر $order_id را دریافت می‌کند.
woocommerce_thankyou_{payment_method} صفحه تشکر مخصوص یک روش پرداخت (مثلاً woocommerce_thankyou_cod).
woocommerce_before_thankyou قبل از محتوای صفحه تشکر.
woocommerce_view_order هنگام نمایش یک سفارش در حساب کاربری.
woocommerce_order_details_before_order_table قبل از جدول جزئیات سفارش.
woocommerce_order_details_after_order_table بعد از جدول جزئیات.
woocommerce_order_details_before_customer_details قبل از اطلاعات مشتری در جزئیات سفارش.
woocommerce_order_details_after_customer_details بعد از اطلاعات مشتری.
woocommerce_order_status_changed وقتی وضعیت سفارش تغییر کند. پارامترها: $order_id, وضعیت قبلی, وضعیت جدید.
woocommerce_order_status_{status} زمانی که سفارش به وضعیت خاصی برسد (مثلاً woocommerce_order_status_completed).
woocommerce_payment_complete بعد از تکمیل موفق پرداخت.
woocommerce_before_order_object_save قبل از ذخیرهٔ آبجکت سفارش.
woocommerce_after_order_object_save بعد از ذخیرهٔ آبجکت سفارش.

Filter Hooks

هوک توضیح فارسی
woocommerce_order_number تغییر شماره سفارش نمایش داده شده.
woocommerce_get_order_item_totals تغییر ردیف‌های جمع‌بندی سفارش (قیمت کل، حمل و نقل…).
woocommerce_my_account_my_orders_actions تغییر دکمه‌های قابل انجام برای سفارشات در حساب کاربری.

👤 ۶. هوک‌های حساب کاربری و ورود/ثبت‌نام

Action Hooks

هوک توضیح فارسی
woocommerce_account_navigation منوی ناوبری حساب کاربری.
woocommerce_before_account_navigation قبل از منوی حساب.
woocommerce_after_account_navigation بعد از منوی حساب.
woocommerce_account_dashboard داشبورد حساب کاربری.
woocommerce_before_account_orders قبل از جدول سفارشات.
woocommerce_after_account_orders بعد از جدول سفارشات.
woocommerce_before_account_downloads قبل از بخش دانلودها.
woocommerce_before_edit_account_form قبل از فرم ویرایش حساب.
woocommerce_account_content محتوای اصلی صفحات حساب کاربری.
woocommerce_login_form_start ابتدای فرم ورود.
woocommerce_login_form_end انتهای فرم ورود.
woocommerce_register_form_start ابتدای فرم ثبت‌نام.
woocommerce_register_form_end انتهای فرم ثبت‌نام.
woocommerce_created_customer پس از ایجاد کاربر جدید.

Filter Hooks

هوک توضیح فارسی
woocommerce_account_menu_items تغییر آیتم‌های منوی حساب کاربری (نام، ترتیب، لینک).
woocommerce_my_account_my_orders_columns ستون‌های جدول سفارش‌های من.
woocommerce_login_redirect تغییر مسیر پس از ورود موفق.

📧 ۷. هوک‌های ایمیل‌ها

Action Hooks

هوک توضیح فارسی
woocommerce_email_header هدر ایمیل‌های ووکامرس.
woocommerce_email_footer فوتر ایمیل‌ها.
woocommerce_email_before_order_table قبل از جدول محصولات در ایمیل.
woocommerce_email_after_order_table بعد از جدول محصولات.
woocommerce_email_order_details بخش جزئیات سفارش.
woocommerce_email_customer_details بخش اطلاعات مشتری.
woocommerce_email_order_meta محل نمایش متاهای سفارش.
woocommerce_email_sent پس از ارسال موفق ایمیل.

Filter Hooks

هوک توضیح فارسی
woocommerce_email_subject_{class} تغییر موضوع ایمیل (مثلاً woocommerce_email_subject_new_order).
woocommerce_email_heading_{class} تغییر عنوان ایمیل.
woocommerce_email_styles فیلتر استایل‌های درون‌خطی (inline) ایمیل.
woocommerce_email_footer_text تغییر متن فوتر ایمیل.

🏗️ ۸. هوک‌های محصولات، قیمت‌ها و تخفیف‌ها

Action Hooks

هوک توضیح فارسی
woocommerce_product_options_general_product_data در صفحهٔ ویرایش محصول، بخش "داده‌های عمومی" (برای افزودن فیلدهای سفارشی).
woocommerce_process_product_meta هنگام ذخیرهٔ متاباکس‌های محصول.

Filter Hooks

هوک توضیح فارسی
woocommerce_get_price_html تغییر HTML نمایش قیمت (قبلاً هم ذکر شد).
woocommerce_product_get_price قیمت محصول.
woocommerce_product_get_regular_price قیمت اصلی.
woocommerce_product_get_sale_price قیمت حراج.
woocommerce_get_price_excluding_tax قیمت بدون مالیات.
woocommerce_get_price_including_tax قیمت با مالیات.
woocommerce_currency_symbol تغییر نماد ارز (مثلاً "تومان").
woocommerce_format_sale_price فرمت نمایش قیمت حراج.
woocommerce_product_is_in_stock وضعیت موجودی (true/false).
woocommerce_product_get_stock_quantity تعداد موجودی.
woocommerce_product_get_stock_status وضعیت موجودی (instock/outofstock).
woocommerce_get_availability متن و کلاس موجودی.

⚙️ ۹. هوک‌های متفرقه و پیشرفته

هوک نوع توضیح فارسی
woocommerce_init Action پس از بارگذاری هستهٔ ووکامرس (مناسب برای کلاس‌های شخص ثالث).
woocommerce_loaded Action پس از آماده‌سازی کامل ووکامرس.
woocommerce_product_query Action تغییر کوئری اصلی حلقهٔ محصولات (برای فیلتر/مرتب‌سازی سفارشی).
woocommerce_shortcode_before_product_loop Action قبل از حلقهٔ محصولات در شورت‌کدها.
woocommerce_shortcode_after_product_loop Action بعد از حلقه.
woocommerce_pagination Action صفحه‌بندی سفارشی.
woocommerce_before_template_part Action قبل از بارگذاری هر قالب جزئی (template part). پارامترها: نام قالب، مسیر.
woocommerce_after_template_part Action بعد از قالب جزئی.
woocommerce_get_image_size_{size} Filter تغییر اندازهٔ تصاویر (مثلاً woocommerce_get_image_size_thumbnail).
woocommerce_placeholder_img_src Filter تغییر تصویر جایگزین (placeholder).
wc_product_attributes Filter فیلتر لیست صفات محصول.
woocommerce_add_error Filter فیلتر اعلان‌های خطا (قرمز).
woocommerce_add_notice Filter فیلتر اعلان‌های موفقیت/اطلاع (سبز/آبی).
woocommerce_breadcrumb_defaults Filter تغییر آرگومان‌های breadcrumbs (جداکننده، متن خانه).
woocommerce_cart_calculate_fees Action افزودن هزینه‌های اضافی به سبد خرید.
woocommerce_ajax_added_to_cart Action پس از افزودن به سبد از طریق Ajax.
woocommerce_cart_updated Action پس از به‌روزرسانی سبد خرید.
woocommerce_before_shipping_calculator Action قبل از ماشین حساب حمل و نقل در سبد.
woocommerce_after_shipping_calculator Action بعد از ماشین حساب.
woocommerce_before_get_current_promotions Action قبل از دریافت تبلیغات فعال.
woocommerce_after_get_current_promotions Action بعد از دریافت تبلیغات.
woocommerce_rest_insert_product Action هنگام ایجاد/به‌روزرسانی محصول از طریق REST API.
woocommerce_rest_insert_order Action سفارش از طریق REST API.
woocommerce_rest_insert_customer Action مشتری از طریق REST API.

https://www.intellsoft.ir/