在本文中,我们将列出一些自定义钩子,这些钩子可用于使用 Astra 主题覆盖一些默认主题行为。始终建议将自定义钩子添加到主题的子主题中。如果您不确定什么是子主题,请阅读本文。如果您不确定如何将自定义钩子插入子主题的 function.php 文件,请单击
此处。
Astra 主题自定义挂钩
更改 WooCommerce 商店侧边栏小部件标签
以下自定义钩子将商店侧边栏小部件标题标签更改为 H4。此功能通常用于更改小部件标题的标题标签,以避免重复标题,从而提高网页或博客的 SEO 分数。要使用此代码,只需将其复制并粘贴到子主题的 function.php 文件底部即可。
add_filter( 'astra_woocommerce_shop_sidebar_init', 'widget_title_tag', 10, 1 );
function widget_title_tag( $atts ) {
$atts['before_title'] = '<h4 class="widget-title">';
$atts['after_title'] = '</h4>';
return $atts;
}
更改 WooCommerce单一 产品侧边栏小部件标签
以下自定义钩子将单个产品侧边栏小部件标题标签更改为 H4。此功能通常用于更改小部件标题的标题标签,以避免重复标题,从而提高网页或博客的 SEO 分数。要使用此代码,只需将其复制并粘贴到子主题的 function.php 文件底部即可。
add_filter( 'astra_woocommerce_single_sidebar_init', 'widget_title_tag', 10, 1 );
function widget_title_tag( $atts ) {
$atts['before_title'] = '<h4 class="widget-title">';
$atts['after_title'] = '</h4>';
return $atts;
}
当购物车为空时隐藏购物车的数量。
此自定义函数将在购物车为空时隐藏商品数量。理想情况下,如果没有代码,购物车为空时将显示“0”;但是,当您将以下代码添加到子主题的 function.php 文件中时,显示将为空白。这里有一篇关于此问题的完整文章。
add_filter('astra_woo_header_cart_total', 'remove_cart_count');
function remove_cart_count( $default){
if(0 == WC()->cart->get_cart_contents_count()){
return false;
}else{
return $default;
}
}
它在网站前端的显示方式如下:
将移动视图上的默认“购物车”文本更改为自定义文本
默认情况下,WooCommerce 将购物车命名为购物车。主题或插件中没有选项可以更改此文本。此自定义挂钩可让您将购物车文本更改为您想要的任何内容。只需将文本“My Shop Flyout Cart”替换为您想要设置的任何文本即可。
add_filter( 'astra_header_cart_flyout_shopping_cart_text', function() {
return 'My Shop Flyout Cart';
}
要了解更多信息,请访问本文 。以下是使用此代码的前后效果示例:
禁用购物车数量显示
此自定义功能将禁用 WooCommerce 网站上的购物车数量显示。
add_filter( 'astra_header_cart_count', '__return_false' );
更改标题购物车标题
此自定义功能可让您将标题中的购物车标题更改为您想要的任何文本。将文本“我的购物车”替换为您想要更改的购物车标题。
dd_filter( 'astra_header_cart_title', function() {
return 'My Shop Cart';
} );
这是前后图像的比较。
为 Header Cart Menu 部分添加自定义类
此自定义功能将向标题内的购物车菜单部分添加自定义类。
add_filter( 'astra_cart_in_menu_class', function( $args ){
$args = array_merge($args, array('custom-class-name-1', 'custom-class-name-2'));
return $args;
} );
禁用 WooCommerce 默认标题购物车图标
此自定义功能将隐藏 Astra 主题中电子商务网站标题的购物车图标。
add_filter( 'astra_woo_default_header_cart_icon', '__return_false' );
禁用 WooCommerce 集成
Astra 主题附带了 WooCommerce 插件的现成自定义选项。您可以使用这些选项自定义商店、购物车和结帐页面以及单个产品。相反,要为您的网站使用默认的 WooCommerce 页面和选项,您需要使用自定义代码。因此,您可以通过本文档了解如何执行此操作。
add_filter( 'astra_enable_woocommerce_integration', '__return_false' );
在商店页面上禁用 WooCommerce 商店父类别
此自定义功能将隐藏您的电子商务网站商店页面的父类别。
add_filter( 'astra_woo_shop_parent_category', '__return_false' );
下面是其工作原理的一个例子。
更改“缺货”标题
此自定义功能可让您将任何商品的“缺货”文字更改为您选择的任何自定义文字。
add_filter( 'astra_woo_shop_out_of_stock_string', function() {
return 'My Out of stock label';
} );
Astra 添加插件挂钩
更改文本“没有更多产品可显示”
当您的访问者完成产品搜索时,此自定义钩子将允许您将默认消息“没有更多产品可显示”的文本更改为您选择的任何自定义文本。这是一项高级功能,仅在安装了 Astra Addon 插件时才有效。您需要做的就是将下面代码中的“我的没有更多产品可显示标签”更改为您选择的任何文本,然后将代码添加到您的 astra 子主题的 function.php 文件中。
add_filter( 'astra_shop_no_more_product_text', function() {
return 'My No more products to show label';
} );
更改 WooCommerce 购物车 URL 重定向
此自定义过滤器可让您将默认的 WooCommerce 购物车 URL 重定向更改为您选择的任何页面。如果您已构建自定义购物车页面,并希望您的访问者重定向到此页面而不是 woocommerce 的默认购物车页面,那么这就是适合您的过滤器。
您所要做的就是将下面提到的代码中的 URL“https://my_add_to_cart_redirect_url”替换为您的自定义 URL,然后将其添加到您的 Astra 子主题的 function.php 文件中。
add_filter( 'astra_woocommerce_add_to_cart_redirect', function() {
return 'https://my_add_to_cart_redirect_url'; // e.g: http://<yoursite_url>/cart/
} );
过滤以更改“加载更多”标签
此自定义过滤器可让您更改电子商务网站上的“加载更多”标签。您所要做的就是替换下面提到的代码中的文本“我的加载更多标签”,并将其添加到 Astra Child 主题的 function.php 文件中。
add_filter( 'astra_load_more_text', function() {
return 'My Load More label';
} );
自定义操作
这些自定义操作代码将让您更好地控制电子商务页面在前端的外观。
在新窗口中打开产品页面
以下自定义代码将允许您始终在新窗口中打开产品页面。
remove_action( 'woocommerce_before_shop_loop_item','woocommerce_template_loop_product_link_open', 10 );
add_action( 'woocommerce_before_shop_loop_item', 'ami_function_open_new_tab', 10 );
function ami_function_open_new_tab() {
echo '<a target="_blank" href="' . get_the_permalink() . '" class="woocommerce-LoopProduct-link">';
}
参见下面的实际操作
在“添加到购物车”按钮前显示库存价值
以下自定义代码将在您的电子商务商店页面上的添加到购物车按钮之前显示库存商品的价值。
add_action( 'astra_woo_shop_add_to_cart_before', 'astra_custom_code', 10 );
function astra_custom_code() {
global $product;
echo wc_get_stock_html( $product );
}
以下是它在前端的样子
在商店页面的产品摘要前添加自定义代码片段
此自定义过滤器允许您在商店页面上的产品摘要前添加自定义文本片段。
add_action( 'astra_woo_shop_before_summary_wrap', 'astra_custom_code', 10 );
function astra_custom_code() {
echo '<div>
Add here your custom snippet that needs to be added before the product summary on the Shop page.
</div>';
}
以下是它在前端的样子
在商店页面上的产品摘要后添加自定义代码片段
此自定义过滤器允许您在商店页面上的产品摘要后添加自定义文本片段。
add_action( 'astra_woo_shop_after_summary_wrap', 'astra_custom_code', 10 );
function astra_custom_code() {
echo '<div>
Add here your custom snippet that needs to be added After the product summary on Shop page.
</div>';
}
它在前端的表现形式如下:
在购物车和结帐页面上添加继续购物按钮
此自定义代码可让您在购物车和结帐页面上添加继续购物按钮,以便客户可以继续浏览更多产品并将其添加到购物车中。
/**
* Add Continue Shopping Button on Cart (& checkout) Page
*/
add_action( 'woocommerce_after_cart_table', 'woo_add_continue_shopping_button_to_cart' );
function woo_add_continue_shopping_button_to_cart() {
$shop_page_url = get_permalink( woocommerce_get_page_id( 'shop' ) );
echo '<div class="">';
echo ' <a href="'.$shop_page_url.'" class="button">Continue Shopping</a>';
echo '</div>';
}
add_action( 'woocommerce_before_checkout_form', 'woo_add_continue_shopping_button_to_checkout' );
function woo_add_continue_shopping_button_to_checkout() {
$shop_page_url = get_permalink( wc_get_page_id( 'shop' ) );
echo '<div class="woocommerce-message">';
echo ' <a href="'.$shop_page_url.'" class="button">Continue Shopping</a> Not finished shopping ?';
echo '</div>';
}
它在前端的表现形式如下:
在产品循环中显示 SKU 字段
此自定义代码在产品循环中显示 SKU。
add_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_after_shop_loop_item_sku_in_cart', 20, 1);
function woocommerce_after_shop_loop_item_sku_in_cart( $template ) {
global $product;
$sku = $product->get_sku();
echo "<p style='color: #444;'>" ."SKU Number: " . $sku . "</p>";
}
在商店页面存档的标题后添加自定义字段
此自定义代码将允许您在商店页面上的产品标题后添加自定义字段,即商店页面上的产品摘要。
add_action( 'astra_woo_shop_title_after
', 'astra_custom_code', 10 );
function astra_custom_code() {
echo '<div>
Add custom fields after the title on the Shop page archive i.e. the product summary on Shop page.
</div>';
}
在商店页面存档的标题前添加自定义字段
此自定义代码将允许您在商店页面上的产品标题前添加自定义字段,即商店页面上的产品摘要。
add_action( 'astra_woo_shop_title_before', 'astra_custom_code', 10 );
function astra_custom_code() {
echo '<div>
Add custom fields before the title on the Shop page archive i.e. the product summary on Shop page.
</div>';
}
在单个产品页面的标题后添加自定义字段
此自定义代码将允许您在单个产品页面上的产品标题后添加自定义文本。
add_action( 'astra_woo_single_title_after', 'astra_custom_code', 10 );
function astra_custom_code() {
echo '<div>
Add custom fields/snippet after the title on the Single Product page.
</div>';
}
在单个产品页面的标题前添加自定义字段
此自定义代码将允许您在单个产品页面上的产品标题前添加自定义文本。
add_action( 'astra_woo_single_title_before', 'astra_custom_code', 10 );
function astra_custom_code() {
echo '<div>
Add custom fields/snippets before the title on the Single Product page.
</div>';
}