在WooCommerce中使用is_single()函数

最模板 2022-07-11 15:58 WooCommerce教程

如果您曾经在 WordPress 中进行过任何编码,那么您可能使用过 is_single() 函数,它对于确定您是否在特定的单个帖子页面上非常有用.

function hwn_filter_content_using_issingle($content) {
	if( is_single(35) && is_main_query() ) {
		$new_content = '<p>This bonus content is added to the bottom of post 35.</p>';
		$content .= $new_content;	
	}	
	return $content;
}
add_filter('the_content', 'hwn_filter_content_using_issingle');

如果您要从 WordPress 迁移到 WooCommerce,那么您可以使用 is_single 以同样的方式确保仅针对特定产品显示内容。下面的示例显示了您可以使用“is_single()”将一些内容添加到特定产品页面的不同方式,在本例中,是销售腰带的页面。

add_action( 'woocommerce_before_single_product', 'hwn_use_issingle_to_add_content_to_a_single_product_page' );

function hwn_use_issingle_to_add_content_to_a_single_product_page() {
   if ( is_single( 15 ) ) {
      echo "<p>This content has been added because the product id is equal to 15.</p>";
   }
   if ( is_single( 'belt' ) ) {
      echo "<p>This content has been added because the product name is equal to 'belt'.</p>";
   }
   if ( is_single( 'Belt' ) ) {
      echo "<p>This content has been added because the product title is equal to 'Belt'.</p>";
   }
}

这将给我们一个类似于下面的结果

在WooCommerce中使用is_single()函数

1,使用 is_single() 的替代方法

作为使用“is_single()”的替代方法,我们可以做这样的事情

add_action( 'woocommerce_before_single_product', 'hwn_add_some_custom_content_for_product_44' );
 
function bbloomer_run_this_for_specific_product_id() {
    global $product;
    if ( $product->get_id() == 44 ) {
       echo '<p>Product 44 is on sale today please don\'t miss this once in a lifetime opportunity.</p>';
    }
}

在这里,我们使用全局$product 变量并在产品对象上调用get_id() 函数来检查我们是否拥有正确的 id,然后我们的内容会显示在正确的产品页面上,如下所示。

2,WooCommerce 是否具有等效于 is_single() 的功能?

答案是“有点”,WooCommerce 确实提供了“is_product”函数,但与“is_single”不同的是,您无法提供 id 作为函数的参数。因此,虽然您不能像上面使用“is_product()”的示例那样针对特定产品,但您可以执行以下操作

add_action( 'woocommerce_before_single_product', 'hwn_add_some_custom_content_for_all_products' );
 
function bbloomer_run_this_on_all_product_pages() {
    global $product;
    if ( is_product() ) {
       echo '<p>All our stock is kept in a secure, clean warehouse, if you place an order today we are ready to ship to you in seconds!</p>';
    }
}
3,如果我想在多个特定产品页面上显示一些内容怎么办?

到目前为止,我们已经展示了如何定位特定产品和所有产品,但是如果我们想为商店中的两个或三个特定产品添加一些内容怎么办,好吧,“is_single()”也可以让我们做到这一点

add_action( 'woocommerce_before_single_product', 'hwn_use_issingle_to_add_content_to_multiple_product_pages' );

function hwn_use_issingle_to_add_content_to_multiple_product_pages() {
	global $post;
	if ( is_single( array(15, 'T-Shirt with Logo', 'sunglasses' ) )) {
		echo "<p>This content has been added because the product has a property that matches one of the arguments passed to the 'is_single' function.</p>";
	}
}

请注意我们如何将不同的搜索词传递到数组中,“is_single”将能够对相关产品执行匹配。在上面的示例中,我们传入了一个产品、一个产品标题和一个产品名称。

在WooCommerce中使用is_single()函数

以前一样,也可以使用全局$product 变量并调用产品对象上的get_id() 函数来做类似的事情

add_action( 'woocommerce_before_single_product', 'hwn_add_some_custom_content_for_product_three_different_products', 20 );
function hwn_add_some_custom_content_for_product_three_different_products() {
    global $product;

    // Add the product ids you want to dsiplay the content for to the array below 
    $targeted_product_ids = array( 33, 44, 55 );

    if( in_array( $product->get_id(), $targeted_product_ids ) ) {
        echo 'Limited stock, please purchase todayto avoid disappointment';
    }
}

 

在这个例子中,我们使用一个数组和 php 的内置“in_array”函数来检查我们是否在我们希望添加内容的页面之一上。请注意,通过使用此方法,我们只能使用产品 ID 进行搜索。

 

 

相关文章

  1. 在WooCommerce产品页面上显示销售总数

    让客户知道产品的受欢迎程度确实有助于转化。一种方法是在产品页面上显示产品已售出的次数。WooCommerce 已经记录了产品的销售次数,因此在产品页面上显示这些数据非常容易。 woo...

    2022-07-10
  2. 为注销的用户重命名WooCommerce我的帐户菜

    在您的 WooCommerce 商店中,您可能会有一个指向我的帐户页面的菜单链接。通常,无论用户是否登录,此链接都会显示我的帐户。但是,如果我们想让它为注销的用户说一些更有用的东西...

    2022-07-10
  3. 按国家地区禁用WooCommerce支付网关

    如果您使用 WooCommerce 向多个国家/地区销售商品,您可能需要阻止来自某些国家/地区的客户使用特定的支付网关。例如,您可能只想向美国客户提供 PayPal。或者您可能希望阻止澳大利亚...

    2022-07-10
  4. 变量$order获取WooCommerce订单信息

    在WooCommerce我怎样才能得到订单总额或者我怎样才能得到订单物品或者可能是订单 ID、客户 ID、账单信息、付款方式、总退款等等,使用变量$order可以获取。可能有 $order_id 可用。在这种...

    2022-04-15
  5. 使用$product获取WooCommerce产品信息ID、S

    在WooCommerce中,使用变量$product 如何获取产品 SKU或者我怎样才能得到产品的简短描述或者可能是产品库存水平、运输等级、税收等级、价格、正常价格、销售价格等等.并非总是可以访问...

    2022-04-15
  6. 在WooCommerce列表页显示商品品牌

    安装好WooCommerce Brands 插件网站将显示品牌分类,商品也会出现品牌链接,但是商品列表页如何也显示商品品牌呢?仅将这些添加到单个产品页面中。 在woomcomerce当中添加以下代码: ad...

    2022-04-15
  7. 在 WooCommerce中自定义地址格式

    每个国家都有不同的地址格式,例如,美国使用缩写的州名,而澳大利亚通常显示完整的州名。这些不是一成不变的规则,它们总是可以改变的。如何 ? 通过当然是自定义代码: 此代码...

    2022-07-26
  8. 在WooCommerce单个产品图像上禁用缩放、灯

    如果WooCommerce您不销售具有大量细节的高端产品,您的客户可能不需要直接放大您的产品图像的能力。而且,如果您不上传高分辨率图像,那么缩放功能就毫无用处。这同样适用于灯箱和...

    2022-07-10
  9. 在WooCommerce添加产品视频代替图片

    WooCommerce 不允许您添加产品视频,但是我们可以用几行代码添加它,不需要第三方插件。 WooCommerce 产品图片用于说明您的产品,但有些产品需要视频才能更好地展示它们。在这里,我将...

    2022-04-04
  10. 在WooCommerce中重命名国家地区

    如果您想在WooCommerce中重命名一个国家/地区,只需向您的网站添加代码片段即可。以下示例将Ireland更改为Republic of Ireland: add_filter( woocommerce_countries, snippetpress_rename_countries );function sni...

    2022-07-10