3

WooCommerce を使用してアイテムがカートに挿入される前に関数を挿入するために適用できるフィルターまたはフックを知っている人はいますか? この投稿と同様の問題があります。

ワードプレス。ウーコマース。カートに入れる前のアクションフック

しかし、OPのコメントが機能していないように見えるか、あいまいすぎて機能させることができず、woocommerce_before_add_to_cartに関するドキュメントが見つかりません。

私がやろうとしているのは、エラーを表示することです。正しいアクションにフックできるようになったら、ロジックを追加します。

function checkProd(){
global $woocommerce;
$woocommerce->add_error( __('ERROR', 'woocommerce') );
return;
}
add_action( 'woocommerce_variable_add_to_cart', 'checkProd');
4

2 に答える 2

3

woocommerce フックについて私が見つけた最良のリソースは、実際にはリポジトリ自体です。非常に読みやすい非常によくコメントされたコードがあります。

https://github.com/woocommerce/woocommerce/blob/master/includes/wc-template-hooks.php

これらのセクションのいずれかで解決しようとしている問題の解決策が存在すると確信しています。

/**
 * Product Add to cart
 *
 * @see woocommerce_template_single_add_to_cart()
 * @see woocommerce_simple_add_to_cart()
 * @see woocommerce_grouped_add_to_cart()
 * @see woocommerce_variable_add_to_cart()
 * @see woocommerce_external_add_to_cart()
 */
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
add_action( 'woocommerce_simple_add_to_cart', 'woocommerce_simple_add_to_cart', 30 );
add_action( 'woocommerce_grouped_add_to_cart', 'woocommerce_grouped_add_to_cart', 30 );
add_action( 'woocommerce_variable_add_to_cart', 'woocommerce_variable_add_to_cart', 30 );
add_action( 'woocommerce_external_add_to_cart', 'woocommerce_external_add_to_cart', 30 );


/**
* Cart Actions
*
* @see woocommerce_update_cart_action()
* @see woocommerce_add_to_cart_action()
* @see woocommerce_load_persistent_cart()
*/
add_action( 'init', 'woocommerce_update_cart_action' );
add_action( 'init', 'woocommerce_add_to_cart_action' );
add_action( 'wp_login', 'woocommerce_load_persistent_cart', 1, 2 );

上記のアクション フックを利用しても引き続き問題が発生する場合は、お気軽に詳細をお知らせください。詳しく説明します。幸運を!

于 2013-04-15T19:21:32.747 に答える
0

カートに追加する前にいくつかのアクションを実行する必要があったため、このようにしました

add_action('init', function(){
    //if user clicked http://example.com/shop/?add-to-cart=42
    if(!is_admin() && isset($_REQUEST['add-to-cart'])){
        //do something
    }
});

$_REQUEST は、GET および POST 要求の両方を処理するために使用されます。

于 2016-07-14T12:08:08.457 に答える