如何使用 WooCommerce Hooks – 示例指南
已發表: 2020-07-07你想學習如何使用 WooCommerce 鉤子嗎? 你來對地方了! 在本指南中,我們將向您展示如何使用操作和過濾器掛鉤。 此外,我們將為您提供許多可應用於您的 WooCommerce 商店的示例!
當您在您的網站上安裝 WooCommerce 時,您可以訪問一長串新鉤子,這些鉤子可以擴展您開發定制解決方案的可能性。 WooCommerce 掛鉤與原生 WordPress 掛鉤的工作方式相同,允許您在任何 WooCommerce 頁面上執行自定義腳本。
與 WordPress 鉤子類似,WooCommerce 鉤子有兩種類型:操作或過濾器。 動作鉤子允許您插入一些腳本,而過濾器鉤子接收原始數據並通過某種修改返回它。
WooCommerce 鉤子的語法
WooCommerce 鉤子遵循與 WordPress 鉤子相同的語法。
動作掛鉤
add_action('name_of_the_action_hook','your_action_hook_funcion');
過濾鉤
add_filter('name_of_the_filter_hook','your_filter_hook_funcion');
聲明鉤子後,您必須在函數中添加腳本:
功能 your_action_hook_funcion(){ # 你的代碼在這裡 }
過濾器掛鉤必須在函數的參數中返回一些數據:
函數 your_filter_hook_function($data){ # 修改 $data 的代碼 返回$數據; }
要查看運行中的 WooCommerce 掛鉤,請將以下代碼粘貼到您的子主題的functions.php文件中:
add_action('woocommerce_product_meta_start', 'quadlayers_woocommerce_hooks'); 功能 quadlayers_woocommerce_hooks() { 迴聲'<img src="https://kokohai.com/wp-content/uploads/2020/02/logo-kokohai-tienda-de-merchandising-de-anime-y-maga-e1584570981420.png">'; // 更改為所需的圖像 url }
這是最基本的示例,您將在其中向所有產品頁面添加圖像。 該圖像將顯示在“添加到購物車”按鈕下,位於產品元數據之前。
如您所見,鉤子的名稱woocommerce_product_meta_start是不言自明的,它準確地告訴您該鉤子允許您插入代碼的位置。
WooCommerce 鉤子列表
有超過一千個 WooCommerce 鉤子。 在這裡,我們將列出最受歡迎的鉤子,以便您熟悉最常見和最知名的鉤子。
我們根據與它們相關的頁面將列表劃分為多個部分。 鉤子的名稱是不言自明的,因此您在理解它們的作用時不會有問題。
大車
- woocommerce_before_cart
- woocommerce_before_cart_table
- woocommerce_before_cart_contents
- woocommerce_cart_contents
- woocommerce_after_cart_contents
- woocommerce_cart_is_empty
- woocommerce_cart_totals_before_shipping
- woocommerce_cart_totals_after_shipping
- woocommerce_cart_totals_before_order_total
- woocommerce_cart_totals_after_order_total
- woocommerce_after_shipping_rate
- woocommerce_before_shipping_calculator
- woocommerce_proceed_to_checkout
- woocommerce_after_cart_totals
- woocommerce_after_cart
查看
- woocommerce_before_checkout_form
- woocommerce_checkout_before_customer_details
- woocommerce_before_checkout_billing_form
- woocommerce_checkout_shipping
- woocommerce_checkout_after_order_review
- woocommerce_checkout_after_customer_details
- woocommerce_checkout_before_order_review
- woocommerce_review_order_before_cart_contents
- woocommerce_review_order_after_cart_contents
- woocommerce_review_order_before_shipping
- woocommerce_review_order_after_shipping
- woocommerce_review_order_after_order_total
- woocommerce_checkout_order_review
- woocommerce_review_order_after_submit
- woocommerce_review_order_after_payment
- woocommerce_after_checkout_form
- woocommerce_thankyou
- 有關結帳掛鉤的更多信息,您可以查看我們關於 WooCommerce 結帳掛鉤的完整指南。
產品
- woocommerce_before_main_content
- woocommerce_after_main_content
- woocommerce_before_single_product_summary
- woocommerce_after_single_product_summary
- woocommerce_before_single_product
- woocommerce_after_single_product
- woocommerce_single_product_summary
- woocommerce_product_meta_start
- woocommerce_product_meta_end
- woocommerce_review_before
- woocommerce_review_before_comment_meta
- woocommerce_review_before_comment_text
- woocommerce_review_comment_text
- woocommerce_review_after_comment_text
分類法
- woocommerce_archive_description
- woocommerce_shop_loop
- woocommerce_before_shop_loop
- woocommerce_after_shop_loop
- woocommerce_after_shop_loop_item
- woocommerce_after_shop_loop_item_title
- woocommerce_shop_loop_item_title
帳戶
- woocommerce_before_account_navigation
- woocommerce_after_account_navigation
- woocommerce_before_edit_account_address_form
- woocommerce_account_content
- woocommerce_before_my_account
- woocommerce_after_my_account
迷你推車
- woocommerce_before_mini_cart
- woocommerce_before_mini_cart_contents
- woocommerce_mini_cart_contents
- woocommerce_widget_shopping_cart_before_buttons
- woocommerce_widget_shopping_cart_buttons
- woocommerce_after_mini_cart
電子郵件
- woocommerce_email_after_order_table
- woocommerce_email_before_order_table
- woocommerce_email_customer_details
- woocommerce_email_footer
- woocommerce_email_header
- woocommerce_email_order_details
全球的
- pre_get_product_search_form
- woocommerce_breadcrumb
- woocommerce_no_products_found
要查找 WooCommerce 鉤子的完整列表,您可以查看官方 WC 文檔。
WooCommerce 鉤子的有用示例
現在,讓我們看一些使用 WooCommerce 鉤子可以做的有用事情的例子。
注意:在開始之前,我們建議您創建一個子主題。 如果您不熟悉它們,可以查看我們的指南,了解如何創建子主題和最佳子主題插件列表。
如果您剛開始使用鉤子,您可以簡單地複制這些腳本並將它們粘貼到您的子主題的functions.php文件中。 然後,當您感覺更舒服時,您可以編輯腳本並創建不同的邏輯。
向商店頁面添加描述
默認情況下,商店頁面不顯示說明。 但是,您可以使用woocommerce_archive_description
掛鉤啟用它,如下所示:
功能 quadlayers_shop_description() { $description = '<p>歡迎光臨我的店鋪,請多多包涵,謝謝。</p>'; 迴聲$描述; } add_action('woocommerce_archive_description', 'quadlayers_shop_description');
添加到購物車按鈕後添加信息說明
WooCommerce 購物車掛鉤允許您在購物車頁面的許多部分中插入自定義腳本。 在這裡,我們將向您展示如何在添加到購物車按鈕之後添加文本。
此腳本將在“添加到購物車”按鈕後打印自定義文本。
add_action('woocommerce_after_add_to_cart_form','quadlayers_after_addtocart_button'); 功能 quadlayers_after_addtocart_button() { // 注意:將您的類別 slugs 替換為“音樂”&& 將 /delivery-costs/ 替換為有效的 url if ( is_product() && has_term( array( 'music' ), 'product_cat' ) ) { echo '<div></div><div>;<a href="/delivery-costs/" target="_blank" rel="noopener"><i class="fa fa-truck" aria-hidden=" true"></i> 滿 100 美元即可免費送貨;</a></div> '; } }
例如,您可以使用它來推廣需要最低消費或免費送貨的折扣。
代碼說明
- 鉤子
woocommerce_after_add_to_cart_form
在按鈕之後打印 HTML 代碼。 - 我們檢查當前頁面是否為產品頁面以及是否有我們指定的類別。
- 在數組中使用類別 slug。 這樣,您可以檢查多個類別。
- 回顯內容允許 HTML 標記、變量和 PHP 範圍內的任何其他內容。
向特定產品分類添加文本
現在,讓我們看看如何使用 WooCommerce 鉤子在具有特定標籤的產品中顯示消息。 例如,我們將顯示一條消息,為某些產品提供折扣。
記得先標記產品。
add_action('woocommerce_before_single_product','my_product_notice_function'); 功能 my_product_notice_function() { if ( is_product() && has_term( 'discount-25','product_tag' ) ) { echo '<p><strong>此產品申請 48 小時內 25% 的折扣!</strong></p>'; } }
代碼說明
- 我們使用
woocommerce_before_single_product
鉤子在產品頁面頂部顯示一條消息。 - 在函數內部,我們使用
is_product()
的條件來確保它是一個產品頁面。 -
has_term()
檢查當前產品是否有“discount-25”標籤。 - 然後,在 if 語句中打印您的消息。
- 我們使用
阻止已註銷用戶的購買
WooCommerce 鉤子允許您為註銷的用戶禁用產品頁面上的添加到購物車按鈕。 這對於僅對訂閱者或會員可用的產品或優惠很有用。 為了完成這個示例,我們將添加第二個鉤子以在禁用購買按鈕時顯示消息。
woocommerce_is_purchasable
過濾器掛鉤將阻止購買,而woocommerce_before_single_product
操作掛鉤將顯示消息。
add_action('woocommerce_before_single_product', 'quadlayers_add_message'); add_filter('woocommerce_is_purchasable', 'quadlayers_block_admin_purchase'); 功能 quadlayers_block_admin_purchase($block) { if ( is_user_logged_in() ):return true; 否則:返回假; 萬一; } 函數 quadlayers_add_message( ){ if ( !is_user_logged_in() ):echo '<H2>請登錄購買此產品</h2>'; 萬一; }
代碼說明
- 我們使用 action hook 來打印消息,使用 filter hook 來禁用Add to cart按鈕。
- 如果用戶已登錄,則
woocommerce_is_purchasable
過濾器掛鉤將為 true,如果用戶已註銷,則為 false。 - 我們還使用條件if()語句將條件僅應用於兩個功能中的註銷用戶(禁用添加到購物車按鈕和消息)。
- 最後,我們為消息添加了一些 CSS 樣式,包含在 H2 HTML 標記中。
如何充分利用 WooCommerce Hooks?
總之,WooCommerce 鉤子是自定義網站的好工具。 有數百個鉤子可供使用,它們都遵循相同的語法。 因此,我們鼓勵您查看示例並獲得一些靈感,以在您的網站上應用您需要的鉤子。
Hooks 可讓您改進商店的任何區域:從結帳到購物車再到產品頁面、分類法等等! 因此,如果您想充分利用它們,請繼續玩,讓我們知道情況如何。 如果您想了解有關結帳掛鉤的更多詳細信息,可以查看我們的結帳掛鉤指南。
最後,如果您有任何問題,請隨時與我們聯繫。 我們會盡力幫助您!