1

テーマfunctions.phpファイルを介してメッセージの出力を変更しようとすると問題が発生します。

woocommerceプラグインによって提供されるtbeコードは次のとおりです。

function woocommerce_add_to_cart_message() {
    global $woocommerce;

    if (get_option('woocommerce_cart_redirect_after_add')=='yes') :

        $return_to  = (wp_get_referer()) ? wp_get_referer() : home_url();

        $message    = sprintf('<a href="%s" class="button">%s</a> %s', $return_to, __('Continue Shopping;', 'woocommerce'), __('Product successfully added to your cart.', 'woocommerce') );

    else :

        $message    = sprintf('<a href="%s" class="button">%s</a> %s', get_permalink(woocommerce_get_page_id('cart')), __('View Cart &rarr;', 'woocommerce'), __('Product successfully added to your cart.', 'woocommerce') );

    endif;

    $woocommerce->add_message( apply_filter('woocommerce_add_to_cart_message', $message) );
}

私がやろうとしているのはボタンメッセージを変更することですが、これを行う方法が正確にはわかりません。

私はWPコーデックスを読んでいますが、残念ながら、これがどのように機能するかを完全には理解していないと思います。これが私が試したことです:

function remove_woocommerce_add_to_cart_message() {
    remove_filter('woocommerce_add_to_cart_message', $message) ;
}

function woocommerce_add_to_cart_message_edited() {
    global $woocommerce;

    if (get_option('woocommerce_cart_redirect_after_add')=='yes') :

        $return_to  = (wp_get_referer()) ? wp_get_referer() : home_url();

        $message    = sprintf('<a href="%s" class="button">%s</a> %s', $return_to, __('Continue Shopping;', 'woocommerce'), __('Product successfully added to your cart.', 'woocommerce') );

    else :

        $message    = sprintf('<a href="%s" class="button">%s</a> %s', get_permalink(woocommerce_get_page_id('cart')), __('NEW CART MESSAGE', 'woocommerce'), __('Product successfully added to your cart.', 'woocommerce') );

    endif;

    $woocommerce->add_message( apply_filter('woocommerce_add_to_cart_message', $message) );
}

そこで、メッセージを出力するフィルターを削除して宣言しましたが、うまくいかないようです。

どんな助けでもそれをいただければ幸いです!

4

2 に答える 2

2

コードに記載されている場合、コードはapply_filter('woocommerce_add_to_cart_message', $message)そのフックに追加されているフィルターを探し、一度に1つずつ調べます。

好きな名前の関数を作成し、次のようにそのフックに追加できます。

function my_filer_function( $message )
{
    // Here you should modify $message as you want, and then return it.
    $newButtonString = 'NEW BUTTON STRING';
    $replaceString = '<a$1class="button">' . $newButtonString .'</a>';
    $message = preg_replace('#<a(.*?)class="button">(.*?)</a>#', $replaceString, $message);
    return $message;
}
// Then add the function to that filter hook and prioritize it last
add_filter( 'woocommerce_add_to_cart_message', 'my_filer_function', 999);
于 2012-08-18T22:50:57.483 に答える
0
// Output success messages
    if ( get_option( 'woocommerce_cart_redirect_after_add' ) == 'yes' ) :

        $return_to  = apply_filters( 'woocommerce_continue_shopping_redirect', wp_get_referer() ? wp_get_referer() : home_url() );


$message    = sprintf('%s',$added_text);
    else :


$message    = sprintf('%s',$added_text);

    endif;

上記のコードに変更を加えましたので、参考になるかもしれません。

于 2013-08-01T06:40:02.497 に答える