2016-05-08 7 views
0

Ich habe den Code unten in meiner functions.php hinzugefügt, so dass ich den WooCommerce-Standard 'Add to cart notice' ändern kann.WooCommerce 'if (is_cart())' in functions.php funktioniert nicht?

Der Hinweis ändert sich, aber die if (is_cart()) scheint nicht zu funktionieren. Es gibt FALSE auf der Warenkorbseite aus.

Ich muss etwas übersehen haben ..?

add_filter ('wc_add_to_cart_message', 'yw_add_to_cart_message', 10, 2); 

function yw_add_to_cart_message($message, $product_id = null) { 

    $titles[] = get_the_title($product_id); 

    $titles = array_filter($titles); 

    if (is_cart()) { 
     $cart_link = '<div class="uk-width-medium-1-5 uk-text-right"><a href="' . WC_Cart::get_checkout_url() . '"><i class="uk-icon-check-square-o"></i> ' . __('Checkout', 'woocommerce') . '</a></div>'; 
    } else { 
     $cart_link = '<div class="uk-width-medium-1-5 uk-text-right"><a href="' . WC_Cart::get_cart_url() . '"><i class="uk-icon-shopping-cart"></i> ' . __('View Cart', 'woocommerce') . '</a></div>'; 
    } 

    $added_text = '<div class="uk-grid uk-grid-collapse" data-uk-grid-margin><div class="uk-width-medium-4-5">' . sprintf(_n('%s has been added to your cart.', '%s have been added to your cart.', sizeof($titles), 'woocommerce'), wc_format_list_of_items($titles)) . '</div>' . $cart_link . '</div>'; 

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

    return $message; 
} 

Antwort

1

Sie haben get_option('woocommerce_cart_redirect_after_add') == 'yes' zu verwenden, anstatt is_cart():

add_filter ('wc_add_to_cart_message', 'yw_add_to_cart_message', 10, 2); 

function yw_add_to_cart_message($message, $product_id = null) { 

    $titles[] = get_the_title($product_id); 

    $titles = array_filter($titles); 

    if (get_option('woocommerce_cart_redirect_after_add') == 'yes') { 
     $cart_link = '<a href="' . WC_Cart::get_checkout_url() . '"><i class="uk-icon-check-square-o"></i> ' . __('Checkout', 'woocommerce') . '</a>'; 
    } else { 
     $cart_link = '<a href="' . WC_Cart::get_cart_url() . '"><i class="uk-icon-shopping-cart"></i> ' . __('View Cart', 'woocommerce') . '</a>'; 
    } 

    $added_text = '<div class="uk-grid uk-grid-collapse" data-uk-grid-margin><div class="uk-width-medium-4-5">' . sprintf(_n('%s has been added to your cart.', '%s have been added to your cart.', sizeof($titles), 'woocommerce'), wc_format_list_of_items($titles)) . '</div><div class="uk-width-medium-1-5 uk-text-right">' . $cart_link . '</div></div>'; 

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

    return $message; 
} 

Verwandte Themen: Here und Here

+1

Sie sollten erklären, warum anstatt einfach, um es zu verbinden. –

+1

Es ist eine sehr hilfreiche Antwort. Ich verstehe, dass diese Frage inaktiv ist. –

+1

@Godisgood vielen Dank ... Ich werde bald mit mehr Erklärungen für die Community aktualisieren :) – LoicTheAztec