<p>少しでもお手伝いさせていただきますので、よろしくお願いいたします。 </p><p>私の問題は、インストールされたプラグインが製品ページの標準の「カートに追加」ボタンを置き換えることです。これを変更したくないので、その下に 2 つ目の [カートに追加] ボタンを追加する必要があります。問題は、無料の製品サンプル用の別のプラグインには、通常の「カートに追加」ボタンが必要であるということです。 </p><p>グローバル スクリプトを追加すると、すべての製品で機能します。 </p>
<pre class="brush:php;toolbar:false;">Add_action( 'woocommerce_product_meta_start', 'woocommerce_template_single_add_to_cart, 1 );</pre>
<p>この機能を製品タブに追加して、チェックボックスを使用して選択した製品で有効または無効にできるようにしたいと考えています。 </p><p>これまでのところ、私のコードは何もしていません。チェックボックスは機能し、チェックボックスは正常に保存されます。ただし、コード スニペットは、製品フロントエンド ページでカートに追加コマンドを実行しません。 </p>
<pre class="brush:php;toolbar:false;">// 管理領域の [製品] タブにチェックボックス フィールドを追加します
関数 add_checkbox_to_product_tab() {
// チェックボックス フィールドを [全般] タブに追加します
woocommerce_wp_checkbox( array(
'id' => 'add_to_cart_checkbox',
'label' => 'Warenkorb Hinzufügen',
'desc_tip' => false, // true または false、説明を直接またはツールチップとして表示します
'説明' => 'ja'
) );
}
add_action( 'woocommerce_product_options_general_product_data', 'add_checkbox_to_product_tab' );
// チェックボックスフィールドの値を保存
function save_checkbox_value( $product ) {
$checkbox = isset( $_POST['add_to_cart_checkbox'] ) ? 'はい' : 'いいえ';
$product->update_meta_data( 'add_to_cart_checkbox', $checkbox );
}
add_action( 'woocommerce_admin_process_product_object', 'save_checkbox_value' );
// チェックボックスが「はい」で選択されている場合にアクションを追加します
function add_action_when_checkbox_selected( $product_id ) {
$checkbox_value = get_post_meta( $product_id, '_add_to_cart_checkbox', true );
if ( $checkbox_value == 'はい' ) {
do_action( 'woocommerce_product_meta_start' );
do_action( 'woocommerce_template_single_add_to_cart' );
}
}
add_action( 'woocommerce_template_single_add_to_cart', 'add_action_when_checkbox_selected', 1 );</pre>
<p><br /></p>
`woocommerce_product_meta_start` フックを使用できます。以下のコードを参照してください。
リーリーテスト後、コードは有効です。