修改 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
}
免责声明:我还没有测试过这段代码,但希望你能理解。
我需要修改 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
}
免责声明:我还没有测试过这段代码,但希望你能理解。