2016-05-28 10 views
2

のhtmlマークアップを変更することができました。id="open_cart"を追加できるように、成功メッセージに「」ボタンが表示されますが、データ - data-cart="open"などの属性はhtml出力に出力されますが、idのみが返されます。WooCommerceデータを追加して成功メッセージのカートボタンを表示する

data-属性を追加する方法はありますか?

function my_add_to_cart_message() { 
    if (get_option('woocommerce_cart_redirect_after_add') == 'yes') : 

    $message = sprintf('%s<a id="open_cart" data-target="open-cart" href="%s" class="button">%s</a>', __('Successfully added to cart.' , 'woocommerce'), esc_url(get_permalink(woocommerce_get_page_id('cart'))), __('View Cart', 'woocommerce')); 

    return $message; 

} 
add_filter('wc_add_to_cart_message', 'my_add_to_cart_message'); 

これは戻って上記の関数です:

<a id="open_cart" href="http://example.com/cart/" class="button wc-forward">Ver carrinho</a> 

data-cart="open"は無視されます。単に迷惑をかける。

+0

はい、とても奇妙です。私は私の答えを削除します...おそらく、あなたはあなたのフックに追加することができる特別なクラスセレクタをターゲットとした小さなクエリスクリプトでこの属性を追加しようとする可能性があります... – LoicTheAztec

+0

まあ、それは今のところ、溶液。ご協力ありがとうございました。 –

答えて

1

これがなぜ起こっているのかを簡単に説明します。

成功メッセージの表示を担当するWoocommerce success.phpテンプレートをご覧ください。

<?php foreach ($messages as $message) : ?> 
    <div class="woocommerce-message"><?php echo wp_kses_post($message); ?></div> 
<?php endforeach; ?> 

wp_kses_post()機能が許可されたタグや属性をチェックして$メッセージ変数の出力をサニタイズ。

ここではあなたのソリューションです:

は、あなたが(wp_kses_allowed_htmlフィルタにフックとなるようwp_kses_postあなたのデータ属性を追加する必要があり、あなたのfunctions.phpに

このスニペットを追加)関数はそれをフィルタリングしません。

+0

うわー!それは有望そうだ。私はそれをできるだけお試しください!詳細な説明をありがとう。これは私がリストをするときに覚えていないからです:/ –

+0

私はそれが動作することを確認することができます。どうもありがとう! –

+0

これは喜びです! –

関連する問題