2016-12-01 5 views
1

私は、ライン6の<?php echo $product->id; ?>を使用して、woocommerce内の製品のIDを解析して返そうとしていますが、機能内の構文を理解する上で問題があります。HTML内のPHP構文 - カートに入れるボタン

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) { 
     if ($product && $product->is_type('simple') && $product->is_purchasable() && $product->is_in_stock() && ! $product->is_sold_individually()) { 
     $html = '<form action="' . esc_url($product->add_to_cart_url()) . '" class="cart" method="post" enctype="multipart/form-data">'; 
     $html .= woocommerce_quantity_input(array(), $product, false); 
     $html .= '<button type="submit" data-quantity="1" data-product_id="<?php echo $product->id; ?>" class="button alt ajax_add_to_cart add_to_cart_button product_type_simple qodef-btn qodef-btn-outline">Add</button>'; 
     $html .= '</form>'; 
     } 
     return $html; 
    } 

これは残念ながら、単に出力htmlとしてdata-product_id="<?php echo $product->id; ?>"を出してくれる。 AJAXがカートに追加するプロセスを処理できるように、製品IDを返すことができます。

私は実際に取り組んでいることに取り組んでいます。

ありがとうございました。

EDIT - 誰でも機能とJSが次に追加する量ボタン(マイナス、入力、プラスを追加したいオフのチャンスでkrlv

への最終解決

感謝カートボタン)を、woocommerceのプロダクトギャラリー(アーカイブ)の商品に追加します。あなたはechoプロダクトIDを必要としないのfunctions.php

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) { 
    if ($product && $product->is_type('simple') && $product->is_purchasable() && $product->is_in_stock() && ! $product->is_sold_individually()) { 
    $html = '<form action="' . esc_url($product->add_to_cart_url()) . '" class="cart" method="post" enctype="multipart/form-data">'; 
    $html .= woocommerce_quantity_input(array(), $product, false); 
    $html .= '<button type="submit" data-quantity="1" data-product_id="' . $product->id . '" class="button alt ajax_add_to_cart add_to_cart_button product_type_simple Add_Your_Style_Classes_Here">Add</button>'; 

    $html .= '</form>'; 
    } 
    return $html; 
} 

ため

PHP JS

jQuery(function($) { 

$("form.cart").on("change", "input.qty", function() { 
    $(this.form).find("button[data-quantity]").data("quantity", this.value); 
}); 
$(document.body).on("adding_to_cart", function() { 
    $("a.added_to_cart").remove(); 
}); 

}); 

答えて

5

、あなたは$html文字列でそれを連結する必要があります。あなたは次のようにすることができます:

$html .= '<button type="submit" data-quantity="1" data-product_id="' . $product->id . '" class="button alt ajax_add_to_cart add_to_cart_button product_type_simple qodef-btn qodef-btn-outline">Add</button>'; 
+0

優秀!ありがとうございました。エコーがhtmlの解析されたPHPの中に何もないと思うのは正しいのですか?それは何ですか? $ product-> id。追加していますか? –

+0

@JasonKingあなたは絶対に正しいです – krlv

+0

Ahh連結!あなたの助けをもう一度ありがとう。ドキュメントを読んでPHPを学ぶことに戻る。 –

関連する問題