修改 WooCommerce 简码 [产品]

Modifying WooCommerce Shortcode [products]

我需要修改 WooCommerce 的简码 [products ids=...]。我想在将产品与最初退回的所有其他资产一起退回时放置一个 "div" 部分。具体来说,我有一个 table 存储产品 ID 及其 "scores"。我想在使用 [products] 简码时显示该特定产品的分数。我知道如何使用 $wpdb 等,但我不知道如何修改 WooCommerce 简码/找不到它。

注意:我知道如何编写自己的短代码,但我还想将这些分数添加到最初由 WooCommerce 创建的产品存档页面。有什么简单的方法可以在不丢失插件更新代码的情况下做到这一点?感谢您的帮助。

您可以使用 WooCommerce 的 [products] 简码创建自己的简码。

类似于:

add_shortcode( 'mc_products', 'mc_products_shortcode' );

/**
 * Add a custom 'mc_products' shortcode
 *
 * @param array $atts  Shortcode attributes
 * @return string
 */
function mc_products_shortcode( $atts) {
  // Pass whichever attributes you need to the 'products' shortcode
  return do_shortcode( "[products ids={$atts['ids']}]" );
}

然后,您将使用 [mc_products ids=…]

而不是 [products ids=…]

如果出于某种原因您需要覆盖现有的 'products' 简码,您可以删除它,然后使用您自己的实现重新添加它。

这看起来像:

remove_shortcode( 'products' );
add_shortcode( 'products', 'mc_products_shortcode' );

/**
 * Replace the existing 'product' shortcode with our own implementation
 *
 * @param array $atts  Shortcode attributes
 * @return string
 */
function mc_products_shortcode( $atts ) {
  // Add your own implementation of the 'products' shortcode
}

免责声明:我还没有测试过这段代码,但希望你能理解。