2017-09-03 8 views
-1

にカスタムショートコードを追加し、すべてのwoocommrceショートコードはPHPのクラスで定義されてい私はWoocommrceでトラッキングコードを追加/交換する新しいショートコードを追加したいWoocommerce

私はwoocommerce_my_order_tracking新しいショート名を追加した(参照することができます以下を参照してください)、Woocommceテンプレートファイルを実行しなくても同じことができます。

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', 
    ); 

以降、クラスIは(他のすべての$ attrのwoocommerceのショートのgetでwoocommerceのショートなど)が、Woocommerceで、テンプレートファイル上で実行せずに、このショートを登録するにはどうすればよい

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); 
} 

答えて

1

テーマfunctions.phpまたは好ましくはサイト固有のプラグインでadd_shortcode()を使用します。

add_shortcode('woocommerce_my_order_tracking ', 'so_46027030_tracking_shortcode'); 

function so_46027030_tracking_shortcode($atts) { 
    return 'your code here'; 
} 
+0

あなたはこのOPが**だけwoocommerceコアファイルに** ... – LoicTheAztec

+1

はいを​​オーバーライドしていることをキャッチしましたが、私は質問は「私はコアファイルを上書き避けるんか」だったと思いますか? – helgatheviking

関連する問題