2017-12-12 4 views
1

JSとJqueryを使わずにWooCommerceのwidget_shopping_cart_contentにクラスを追加したいと思います。私は関数ファイル内のフラグメントをフィルタリングしたい。wooocommerceのwidget_shopping_cart_contentにクラスを追加する

JSとjqueryがこのファイルで動作していません。

私はこのコードをclass-wc-ajax.phpファイルで見つけました。このコードを変更したいと思います。

public static function get_refreshed_fragments() { 
     ob_start(); 

     woocommerce_mini_cart(); 

     $mini_cart = ob_get_clean(); 

     $data = array(
      'fragments' => apply_filters('woocommerce_add_to_cart_fragments', array(
        'div.widget_shopping_cart_content' => '<div class="widget_shopping_cart_content">' . $mini_cart . '</div>', 
       ) 
      ), 
      'cart_hash' => apply_filters('woocommerce_add_to_cart_hash', WC()->cart->get_cart_for_session() ? md5(json_encode(WC()->cart->get_cart_for_session())) : '', WC()->cart->get_cart_for_session()), 
     ); 

     wp_send_json($data); 
    } 

私はこの<div class="widget_shopping_cart_content dropdown-menu">' . $mini_cart . '</div>';ドロップダウン・メニュークラスを追加するのではなく、どのように私は知らなかったことができますしたいです。

助けてもらえますか?

答えて

1

オプション1:str_replace();

add_filter('woocommerce_add_to_cart_fragments', 'mm_string_replace_add_to_cart_fragments'); 

function mm_string_replace_add_to_cart_fragments($fragments){ 

    return $fragments['div.widget_shopping_cart_content'] = str_replace('class="widget_shopping_cart_content"', 'class="widget_shopping_cart_content dropdown-menu"', $fragments['div.widget_shopping_cart_content']); 

} 

これはwoocommerce_mini_cart()への追加の呼び出しを必要として、下記の他の方法もはるかに高速が、あまり柔軟ではありません。

オプション2:基本的に、我々はいくつかの変更を加えた全体の機能をリコールしているget_refreshed_fragments機能

add_filter('woocommerce_add_to_cart_fragments', 'mm_change_add_to_cart_fragments'); 

function mm_change_add_to_cart_fragments(){ 
    ob_start(); 

    woocommerce_mini_cart(); 

    $mini_cart = ob_get_clean(); 

    return array(
     'div.widget_shopping_cart_content' => '<div class="widget_shopping_cart_content dropdown-menu">' . $mini_cart . '</div>', 
       ) 

} 

を上書きします。だから初めてget_refreshed_fragmentsを実行すると無駄になります。これは理想的な解決策ではありませんが、これが私たちの手元にあります。 htmlをより詳細に変更するには、これを使用します。

+0

これは機能しています。どうもありがとうございます。 :) –

関連する問題