Jump to content
ksanyok

Помоги исправить код

Recommended Posts

Всем привет.
Необходимо на определенные категории добавить в магазине кнопку Демоверсии после корзины.

Есть такой код у меня.

// Add demo preview button to single product page 
  
function isa_after_add_to_cart_button() { 
  
    global $post; 
  
    $demoslug = $post->post_name; 
  
     $demourl = get_bloginfo('url').'/preview?theme='.$demoslug.''; 
  
        $demotitle = esc_attr($post->post_title); 
  
    echo '<a href="'.$demourl.'" title="'.$demotitle.'" class="sc-button demo-preview" rel="nofollow" target="_blank">Демо-сайт</a>'; 
  
} 
add_action('woocommerce_after_add_to_cart_button','isa_after_add_to_cart_button');  

Но данный код добавляет кнопку на все товары.

Ранее я делал дурацкий код для того что бы убрать (скрыть) кнопку с ненужных категорий и делал это так:

// Hide shop items for services category 
function services_remove_woocommerce(){ 
    global $product, $post; 
    $target_category = 'services'; 

    // Remove shop items from the Single Product page 
    if ( is_product() ) { 
        $terms = wp_get_post_terms( $post->ID, 'product_cat' ); 
        foreach ( $terms as $term ) $categories***91;***93; = $term->slug; 
        if ( in_array( $target_category, $categories ) ){ 
    ?> 
    <style type="text/css"> 
    a.sc-button.demo-preview { 
    display: none; 
    } 
    </style> 
    <?php 
    } 
    } 
} 
add_action( 'wp_head', 'services_remove_woocommerce' );

Подскажите пожалуйста как просто установить кнопку на некотоыре категории. Кнопку нужно по сути добавить на товар из осного раздела и на его подкатегории.

Share this post


Link to post
Share on other sites

Я охреневаю над задачами. Вы скинули солидный кусок кода, + тут нету полной логики WC это раз. 

Идите на фриланс и платите. Тут Вам никто такое за бесплатно делать не будет 

Share this post


Link to post
Share on other sites
5 минут назад, kuzovbmw сказал:

Я охреневаю над задачами. Вы скинули солидный кусок кода, + тут нету полной логики WC это раз. 

Идите на фриланс и платите. Тут Вам никто такое за бесплатно делать не будет 

По вашему код из 7 строк это "солидный кусок кода"???

Share this post


Link to post
Share on other sites
58 минут назад, ksanyok сказал:

По сути эти 7 сторк нужно дополнить. Как я понимаю опираться стоит на 


 $target_category = 'services'; 

Функция проверки поста на принадлежность категории in_category не работает?

Share this post


Link to post
Share on other sites

Чисто теоретически написал:

function after_cart_btn_add_preview_btn() {
	global $post;
	
	$term = array( 'term_slug_1', 'term_slug_2', 'term_slug_3' );
	
	if ( is_product() && has_term( $term, 'product_cat', $post ) ) {
		$demourl   = home_url() . "/preview?theme={$post->post_name}";
		$demotitle = esc_attr( $post->post_title );
		$class     = 'sc-button demo-preview';
		$link      = '<a href="%s" title="%s" class="%s" rel="nofollow" target="_blank">Демо-сайт</a>';
		
		printf( $link, $demourl, $demotitle, $class );
	}
}

add_action( 'woocommerce_after_add_to_cart_button', 'after_cart_btn_add_preview_btn' );

 

Share this post


Link to post
Share on other sites
10 часов назад, campusboy сказал:

Чисто теоретически написал:


function after_cart_btn_add_preview_btn() {
	global $post;
	
	$term = array( 'term_slug_1', 'term_slug_2', 'term_slug_3' );
	
	if ( is_product() && has_term( $term, 'product_cat', $post ) ) {
		$demourl   = home_url() . "/preview?theme={$post->post_name}";
		$demotitle = esc_attr( $post->post_title );
		$class     = 'sc-button demo-preview';
		$link      = '<a href="%s" title="%s" class="%s" rel="nofollow" target="_blank">Демо-сайт</a>';
		
		printf( $link, $demourl, $demotitle, $class );
	}
}

add_action( 'woocommerce_after_add_to_cart_button', 'after_cart_btn_add_preview_btn' );

 

Огромное спасибо. Сработало.)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...