我想添加一个新的Shortcode来替换/添加Woocommrce中的跟踪代码,所有woocommrce短代码都是由php类定义的
我添加了一个新的短代码名称woocommerce_my_order_tracking(可以在下面看到),如何在不运行Woocommrce模板文件的情况下执行相同的操作。
class WC_Shortcodes {
/**
* Init shortcodes.
*/
public static function init() {
$shortcodes = array(
'product' => __CLASS__ . '::product',
'product_page' => __CLASS__ . '::product_page',
'product_category' => __CLASS__ . '::product_category',
'product_categories' => __CLASS__ . '::product_categories',
'add_to_cart' => __CLASS__ . '::product_add_to_cart',
'add_to_cart_url' => __CLASS__ . '::product_add_to_cart_url',
'products' => __CLASS__ . '::products',
'recent_products' => __CLASS__ . '::recent_products',
'sale_products' => __CLASS__ . '::sale_products',
'best_selling_products' => __CLASS__ . '::best_selling_products',
'top_rated_products' => __CLASS__ . '::top_rated_products',
'featured_products' => __CLASS__ . '::featured_products',
'product_attribute' => __CLASS__ . '::product_attribute',
'related_products' => __CLASS__ . '::related_products',
'shop_messages' => __CLASS__ . '::shop_messages',
'woocommerce_order_tracking' => __CLASS__ . '::order_tracking',
'woocommerce_my_order_tracking' => __CLASS__ . '::my_order_tracking',
'woocommerce_cart' => __CLASS__ . '::cart',
'woocommerce_checkout' => __CLASS__ . '::checkout',
'woocommerce_my_account' => __CLASS__ . '::my_account',
);
后来在课堂上
public static function order_tracking( $atts ) {
return self::shortcode_wrapper( array( 'WC_Shortcode_Order_Tracking', 'output' ), $atts );
}
public static function my_order_tracking( $atts ) {
return self::shortcode_wrapper( array( 'WC_Shortcode_My_Order_Tracking', 'output' ), $atts );
}
如何注册此短代码(作为所有其他$ attr woocommerce短代码获取的woocommerce短代码),但没有在Woocommerce中运行模板文件,
答案 0 :(得分:1)
您在主题functions.php
中使用add_shortcode()
,或者最好在特定于网站的插件中使用http://quickid.net/test/ideaboard.html。
add_shortcode( 'woocommerce_my_order_tracking ', 'so_46027030_tracking_shortcode' );
function so_46027030_tracking_shortcode( $atts ) {
return 'your code here';
}