将自定义短代码添加到Woocommerce

时间:2017-09-03 19:17:01

标签: php wordpress woocommerce

我想添加一个新的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中运行模板文件,

1 个答案:

答案 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';
}