woocommerce shortcode短代码调用

2023-03-14 10:00:08 浏览数 (1)

WooCommerce配备了很多shortcode短代码(简码),可以直接在post帖子和page页面内插入内容,方便展示产品、分类等。比如直接在文章编辑时直接插入[products],或者在php文件中插入<?php echo do_shortcode('[product]'); ?>以下是一些常用的woocommerce短代码

注意短代码不要放在<pre></pre>之间,""双引号和''单引号是在英文状态下


page短代码

WooCommerce 如果没有您网站上的某个地方的前三个短代码,就无法正常运行。

woocommerce_cart – 显示购物车页面 

woocommerce_checkout – 显示结帐页面 

woocommerce_my_account – 显示用户帐户页面

woocommerce_order_tracking – 显示订单跟踪表单

在大多数情况下,这些短代码将通过我们的入门向导自动添加到页面中,无需手动使用。

即如果你是正常安装woocommerce,它会自动创建cart、checkout、my account三个页面


product短代码

[products]短代码允许您按帖子 ID、SKU、类别、属性显示产品,并支持分页、随机排序和产品标签,取代了对多个短代码的需求。查看以下示例。[products][featured_products][sale_products][best_selling_products][recent_products][product_attribute][top_rated_products]

可用的产品属性

显示产品属性
  • limit– 要显示的产品数量。发布商品时默认为 和(全部显示),类别默认为 (显示全部)。-1-1
  • columns– 要显示的列数。默认值为 。4
  • paginate– 打开分页。与 结合使用。默认设置为 分页 。limitfalsetrue
  • orderby– 对输入选项显示的产品进行排序。可以通过添加两个 slug 并在它们之间留空格来传递一个或多个选项。可用选项包括:
    • date– 产品发布日期。
    • id– 产品的帖子 ID。
    • menu_order– 菜单顺序,如果已设置(首先显示较小的数字)。
    • popularity– 购买次数。
    • rand– 在页面加载时随机订购产品(可能不适用于使用缓存的网站,因为它可以保存特定订单)。
    • rating– 平均产品评级。
    • title– 产品标题。这是默认模式。orderby
  • skus– 以逗号分隔的产品 SKU 列表。
  • category– 逗号分隔的类别蛞蝓列表。
  • tag– 以逗号分隔的标签 slug 列表。
  • order– 使用中设置的方法说明产品订单是升序 () 还是降序 ()。默认值为 。ASCDESCorderbyASC
  • class– 添加 HTML 包装类,以便您可以使用自定义 CSS 修改特定输出。
  • on_sale– 检索打折产品。不得与 或 一起使用。best_sellingtop_rated
  • best_selling– 检索最畅销的产品。不得与 或 一起使用。on_saletop_rated
  • top_rated– 检索最受好评的产品。不得与 或 一起使用。on_salebest_selling
内容产品属性
  • attribute– 使用指定的属性 slug 检索产品。
  • terms– 要与 一起使用的属性术语的逗号分隔列表。attribute
  • terms_operator– 用于比较属性项的运算符。可用选项包括:
    • AND– 将显示来自所有选定属性的产品。
    • IN– 将显示具有所选属性的产品。这是默认值。terms_operator
    • NOT IN– 将显示不在所选属性中的产品。
  • tag_operator– 用于比较标签的运算符。可用选项包括:
    • AND– 将显示所有选定标签中的产品。
    • IN– 将显示带有所选标签的产品。这是默认值。tag_operator
    • NOT IN– 将显示不在所选标签中的产品。
  • visibility– 将根据所选可见性显示产品。可用选项包括:
    • visible– 产品在商店和搜索结果中可见。这是默认选项。visibility
    • catalog– 产品仅在商店中可见,但对搜索结果不可见。
    • search– 产品仅在搜索结果中可见,但在商店中不可见。
    • hidden– 在商店和搜索中隐藏的产品,只能通过直接 URL 访问。
    • featured– 标记为特色产品的产品。
  • category– 使用指定的类别 slug 检索产品。
  • tag– 使用指定的标签 slug 检索产品。
  • cat_operator– 用于比较类别术语的运算符。可用选项包括:
    • AND– 将显示属于所有选定类别的产品。
    • IN– 将显示所选类别中的产品。这是默认值。cat_operator
    • NOT IN– 将显示不在所选类别中的产品。
  • ids– 将根据逗号分隔的帖子 ID 列表显示产品。
  • skus– 将根据逗号分隔的 SKU 列表显示产品。

如果商品未显示,请确保未在“目录可见性”中将其设置为“隐藏”。

特殊产品属性

这些属性不能与上面列出的“内容属性”一起使用,因为它们可能会导致冲突并且无法显示。应仅使用以下特殊属性之一。

  • best_selling– 将显示您最畅销的产品。必须设置为 。true
  • on_sale– 将显示您的销售产品。必须设置为 。true

[product]短代码示例 

场景 1 – 随机销售物品

我想显示四个随机的特价产品。

代码语言:javascript复制
[products limit="4" columns="4" orderby="popularity" class="quick-sale" on_sale="true" ]

此简码明确表示四个产品,四列(将是一行),显示最受欢迎的在售商品。它还添加了一个CSS类,我可以在我的主题中修改它。quick-sale

场景 2 – 特色产品

我想展示我的特色商品,每行两件,最多展示四件商品。

代码语言:javascript复制
[products limit="4" columns="2" visibility="featured" ]

这个简码说最多四个产品将在两列中加载,并且它们必须被推荐。尽管没有明确说明,但它使用默认值,例如按标题(A 到 Z)排序。

场景 3 – 最畅销的产品

我想连续展示我的三个最畅销的产品。

代码语言:javascript复制
[products limit="3" columns="3" best_selling="true" ]
场景 4 – 最新产品

我想先展示最新产品 – 一行显示四个产品。为此,我们将使用 Post ID(在创建产品页面时生成)以及 order 和 orderby 命令。由于您无法从前端看到 Post ID,因此 ID#s 已叠加在图像上。

代码语言:javascript复制
[products limit="4" columns="4" orderby="id" order="DESC" visibility="visible"]
场景 5 – 特定类别

我只想展示连帽衫和衬衫,而不是配饰。我将使用两行四行。

代码语言:javascript复制
[products limit="8" columns="4" category="hoodies, tshirts" cat_operator="AND"]

或者,我只想显示不属于这些类别的产品。我只需要更改 .cat_operatorNOT IN

代码语言:javascript复制
[products limit="8" columns="4" category="hoodies, tshirts" cat_operator="NOT IN"]

请注意,即使限制设置为 ,也只有四个产品符合该条件,因此会显示四个产品。

场景 6 – 属性显示

每个服装都有一个属性,根据适当的季节,“春/夏”或“秋/冬”,有些配饰具有两者,因为它们可以全年穿着。在此示例中,我希望每行三个产品,显示所有“春/夏”项。该属性 slug 是 ,属性是 和 。我还希望它们从最新产品到最旧产品进行排序。seasonwarmcold

代码语言:javascript复制
[products columns="3" attribute="season" terms="warm" orderby="date"]

或者,如果我想只展示寒冷天气的产品,我可以添加我的:NOT INterms_operator

代码语言:javascript复制
[products columns="3" attribute="season" terms="warm" terms_operator="NOT IN"]

请注意,通过使用 ,我排除了同时处于“春/夏”和“秋/冬”中的产品。如果我想展示所有适合寒冷天气的装备,包括这些共享配件,我会将术语从 更改为 .NOT INwarmcold

场景 7 – 仅显示带有标签“连帽衫”的产品
代码语言:javascript复制
[products tag="hoodie"]

按自定义meta字段对产品进行排序

使用产品简码时,您可以选择按上述预定义值订购产品。您还可以使用以下代码按自定义元字段对产品进行排序(在本例中,我们按价格对产品进行排序):

代码语言:javascript复制
add_filter( 'woocommerce_shortcode_products_query', 'woocommerce_shortcode_products_orderby' );

function woocommerce_shortcode_products_orderby( $args ) {

    $standard_array = array('menu_order','title','date','rand','id');

    if( isset( $args['orderby'] ) && !in_array( $args['orderby'], $standard_array ) ) {
        $args['meta_key'] = $args['orderby'];
        $args['orderby']  = 'meta_value_num'; 
    }

    return $args;
}

  您需要将此代码段放在主题文件夹中.php然后通过编辑meta_key对其进行自定义。


产品分类

这两个短代码将在任何页面上显示您的产品类别。

  • [product_category]– 将显示指定产品类别中的产品。
  • [product_categories]– 将显示您的所有产品类别。

可用的产品类别属性

  • ids– 指定要列出的特定类别 ID。用于 [product_categories]
  • category– 可以是类别 ID、名称或 slug。用于 [product_category]
  • limit– 要显示的类别数量
  • columns– 要显示的列数。默认值为 4
  • hide_empty– 默认值为“1”,这将隐藏空类别。设置为“0”以显示空类别
  • parent– 如果要显示所有子类别,请设置为特定类别 ID。或者,设置为“0”(如下例所示)以仅显示顶级类别。
  • orderby– 默认按“名称”排序,可以设置为“id”、“slug”或“menu_order”。如果您想按指定的 ID 排序,则可以使用orderby="include"
  • order– 使用 中设置的方法说明类别排序是升序 () 还是降序 ()。默认值为 。ASCDESCorderbyASC

产品类别方案示例

仅显示顶级类别

想象一下,您只想在页面上显示顶级类别并排除子类别,那么可以使用以下短代码。

代码语言:javascript复制
[product_categories number="0" parent="0"]

产品详情页

按 ID 或 SKU 显示完整的单个产品页面。

代码语言:javascript复制
[product_page id="99"]
代码语言:javascript复制
[product_page sku="FOO"]

相关产品

在产品详情页中列出相关产品。

参数:

代码语言:javascript复制
array(
     'limit' => '12',
     'columns' => '4',
     'orderby' => 'title'
 )

相关产品短代码

[related_products limit="12"]


加入购物车

按ID显示单个产品的价格并添加到购物车按钮。

参数:

代码语言:javascript复制
array(
      'id' => '99',
      'style' => 'border:4px solid #ccc; padding: 12px;',
      'sku' => 'FOO'
      'show_price' => 'TRUE'
      'class' => 'CSS-CLASS'
      'quantity' => '1';
 )

加入购物车短代码:

代码语言:javascript复制
[add_to_cart id="99"]

添加到购物车网址

按 ID 在单个产品的添加到购物车按钮上显示 URL。

参数:

代码语言:javascript复制
array(
      'id' => '99',
      'sku' => 'FOO'
 )

添加购物车网址短代码

代码语言:javascript复制
[add_to_cart_url id="99"]

在非WooCommerce的页面上显示WooCommerce通知

[shop_messages]允许您在非WooCommerce页面上显示WooCommerce通知(例如,“产品已添加到购物车”)。当您使用其他短代码(如 )并希望用户获得有关其操作的一些反馈时非常有用。


woocommerce短代码常见问题

 变体产品 SKU 未显示

关于 SKU 短代码的使用,例如,变体产品 SKU 不打算单独显示,而不是父变量产品 SKU。因此,如果我们使用来自:产品数据>可变产品>变体>变体名称> SKU,则预计不会显示该 SKU。[products skus="sku-name"]

但是,如果我们使用父变量产品中的 SKU:商品数据>可变商品>库存> SKU,则会显示该商品数据。

参考资料

https://woocommerce.com/document/woocommerce-shortcodes/

0 人点赞