2017-05-11 2 views
0

특정 제품 카테고리 및 제품 유형이 'simple product' 인 경우 '장바구니에 담기'버튼을 바꾸고 싶습니다.WooCommerce의 맞춤 버튼이있는 장바구니 버튼에 바꾸기

모든 제품 (상점 및 아카이브 페이지)과 단일 제품 페이지를 볼 수있는 페이지에서 확인하고 싶습니다.

코드를 넣고 그냥 내 제품의 모든 카테고리의 게시물에서 내 추가 쇼핑 카트에 담기 버튼을 숨길 수 :

function western_custom_buy_buttons(){ 

    $product = get_product(); 

    if (has_term('categ1', 'product_cat')){ 

     // removing the purchase buttons 

     remove_action('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart'); 

     remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30); 

     remove_action('woocommerce_simple_add_to_cart', 'woocommerce_simple_add_to_cart', 30); 

     remove_action('woocommerce_grouped_add_to_cart', 'woocommerce_grouped_add_to_cart', 30); 

     remove_action('woocommerce_variable_add_to_cart', 'woocommerce_variable_add_to_cart', 30); 

     remove_action('woocommerce_external_add_to_cart', 'woocommerce_external_add_to_cart', 30); 

    } 

} 

add_action('wp', 'western_custom_buy_buttons'); 

내가 어떻게 달성 할 수 있습니까? 제발 도와주세요.

답변

3

사용자 정의 "read more" 버튼을 사용하여 정의 된 제품 범주 및 단순한 제품에 대한 모든 add-to-cart 버튼을 대체 할 완벽한 솔루션입니다.

이 코드는 테스트와의 2.6.x에서 3.0로 WooCommerce 버전에서 작동합니다

// Replacing add-to-cart button in shop pages and archives pages 
add_filter('woocommerce_loop_add_to_cart_link', 
'quantity_inputs_for_woocommerce_loop_add_to_cart_link', 10, 2); 

function quantity_inputs_for_woocommerce_loop_add_to_cart_link($html, $product) { 

    // WooCommerce compatibility 
    if (method_exists($product, 'get_id')) { 
     $product_id = $product->get_id(); 
    } else { 
     $product_id = $product->id; 
    } 

    if (has_term('categ1', 'product_cat', $product_id) && $product->is_type('simple')) { 
     // Set HERE your button link 
     $link = get_permalink($product_id); 
     $html = '<a href="'.$link.'" class="button alt add_to_cart_button">'.__("Read More", "woocommerce").'</a>'; 
    } 
    return $html; 
} 

// Outputing a custom button in Single product pages (you need to set the button link) 
function single_product_custom_button() { 

    global $product; 

    // WooCommerce compatibility 
    if (method_exists($product, 'get_id')) { 
     $product_id = $product->get_id(); 
    } else { 
     $product_id = $product->id; 
    } 

    if (has_term('categ1', 'product_cat', $product_id)) { 
     // Set HERE your button link 
     $link = '#'; 
     echo '<a href="'.$link.'" class="button alt add_to_cart_button">'.__("Read More", "woocommerce").'</a>'; 
    } 
} 

// Replacing add-to-cart button in Single product pages 
add_action('woocommerce_single_product_summary', 'removing_addtocart_buttons', 1); 
function removing_addtocart_buttons() 
{ 
    global $product; 

    // WooCommerce compatibility 
    if (method_exists($product, 'get_id')) { 
     $product_id = $product->get_id(); 
    } else { 
     $product_id = $product->id; 
    } 

    if (has_term('categ1', 'product_cat', $product_id)) 
    { 
     #### Removing the add-to-cart button #### 

     ## Simple products 
     remove_action('woocommerce_simple_add_to_cart', 'woocommerce_simple_add_to_cart', 30); 

     ## Other products types 
     // remove_action('woocommerce_grouped_add_to_cart', 'woocommerce_grouped_add_to_cart', 30); 
     // remove_action('woocommerce_variable_add_to_cart', 'woocommerce_variable_add_to_cart', 30); 
     // remove_action('woocommerce_external_add_to_cart', 'woocommerce_external_add_to_cart', 30); 
     // remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30); 
     // remove_action('woocommerce_single_variation', 'woocommerce_single_variation_add_to_cart_button', 20); 


     #### Adding a custom replacement button #### 

     ## Simple products 
     add_action('woocommerce_simple_add_to_cart', 'single_product_custom_button', 30); 

     ## Other products types 
     // add_action('woocommerce_grouped_add_to_cart', 'single_product_custom_button', 30); 
     // add_action('woocommerce_variable_add_to_cart', 'single_product_custom_button', 30); 
     // add_action('woocommerce_external_add_to_cart', 'single_product_custom_button', 30); 
     // add_action('woocommerce_single_product_summary', 'single_product_custom_button', 30); 
     // add_action('woocommerce_single_variation', 'single_product_custom_button', 20); 
    } 
} 

코드 활성 자식 테마 (또는 테마)의 function.php 파일에 간다 나 또한 어떤 플러그인 파일 .

관련 문제