2017-10-20 10 views
0

Shopアーカイブページのデフォルト/?add-to-cart = animationボタンを削除します。シンプルな製品のデフォルトモードでは、ボタンをクリックしてチックを表示し、「カートを見る」オプションのリンクを表示した後、少しスピナーを表示します。 (https://snag.gy/ZreQid.jpgWoocommerceのボタンでデフォルトの/?add-to-cart = animationを無効にする

私は単純な商品カートに入れるボタンを押して、可変商品と同じ方法で商品ページにリダイレクトします。 (つまり、ボタンをクリックした後にクライアントに商品ページを表示させ、Woocommerceプラグイン用のブースターで[カートに追加]ラベルを[商品の表示]に変更します)。

だから、私はこのthreadにこのコードを見つけました:最初のステップは、一貫してうまく機能

/*STEP 1 - REMOVE ADD TO CART BUTTON ON PRODUCT ARCHIVE (SHOP) */ 

function remove_loop_button(){ 
remove_action('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10); 
} 
add_action('init','remove_loop_button'); 

/*STEP 2 -ADD NEW BUTTON THAT LINKS TO PRODUCT PAGE FOR EACH PRODUCT */ 

add_action('woocommerce_after_shop_loop_item','replace_add_to_cart'); 
function replace_add_to_cart() { 
global $product; 
$link = $product->get_permalink(); 
echo do_shortcode('<br>[button link="' . esc_attr($link) . '"]VIEW PRODUCT[/button]'); 
} 

。第二のステップは、ある時代に働きます。たとえば、あるサイトでは、ステップ2が魅力的です。 2番目のサイト(同じテーマ、同じホストなど)で、ボタンは次のように表示されます。

[button link = "https://example.com/product/product-name/ "]製品を見る[/ button]

つまり、ボタンは表示されません。この生コードは表示され、クリックできません。ここをクリックしてください:https://snag.gy/FxEPWh.jpg

私はこれを正しく説明しました。

上記のコードが異なるサイト間で一貫して動作しない理由を説明できる人はいますか?これを行う簡単な方法はありますか?ここで

答えて

0

は、ソリューションは、

add_filter('woocommerce_loop_add_to_cart_link','change_simple_shop_add_to_cart',10,2); 
function change_simple_shop_add_to_cart($html, $product){ 
    if($product->is_type('simple')) { 

     $html = sprintf('<a rel="nofollow" href="%s" data-product_id="%s" class="button">%s</a>', 
       esc_url(get_the_permalink()), 
       esc_attr($product->get_id()), 
       esc_html( __('View Product', 'woocommerce')) 
     ); 
    } 
    return $html; 
} 
+0

で、ローガン、ありがとうございました。これは私の製品のほとんどでうまくいきました。しかし、私は「シンプルな」サブスクリプション製品(Woocommerce Extension)も持っていましたが、そのソリューションは影響を受けませんでした。あなたは私がそれらの製品タイプラインに追加しなければならないことを知っていますか? – CraigK

+0

商品タイプが分かっている場合は、$ product-> is_type( 'simple')で&&演算子を付けることができます。たとえば、変数製品のチェックを追加する場合は、$ product-> is_type( 'simple')&& $ product-> is_type( 'variable'))を試してみてください。 –

+0

あなたの質問によると、答えとしてマークしてください。他の質問がある場合は、ここで質問することができます。 –

関連する問題