概要
woocommerce_$PRODUCT->GET_TYPE_add_to_cart
は、WooCommerceの製品オブジェクトに特定の製品タイプに対応した「カートに追加」ボタンの機能を提供するメソッドです。この関数は、様々な製品タイプ(シンプル商品、変数商品、外部商品など)に基づいた利用を想定しており、ショッピングサイトでの製品購入プロセスを円滑に進めるためによく使用されます。
よく使われる機能
- シンプル商品に対してカートに追加ボタンを表示する。
- 変数商品に対して、選択肢を考慮したカートに追加処理を実装する。
- 外部商品リンクの作成およびそのリンクを経由して購入を促進する。
- クーポンや割引コードとの統合を行うことで、購入フローをスムーズにする。
- 商品の在庫管理情報(在庫あり・在庫なし)を反映する。
- ユーザーのログイン状態に応じて、カートに追加ボタンの表示を条件付きで制御する。
構文
public function get_type_add_to_cart();
パラメータ
このメソッドは特定のパラメータを持ちません。
戻り値
get_type_add_to_cart
メソッドは、HTMLを含むカートに追加ボタン経由の出力を返します。
対応WooCommerceバージョン
このメソッドは、WooCommerceのすべてのバージョンでサポートされています。
対応WordPressバージョン
WordPress 4.0以上での利用が推奨されます。
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプル1: シンプル商品用のカートに追加ボタン
$product = wc_get_product( $product_id );
if ( $product->is_in_stock() ) {
echo $product->get_type_add_to_cart();
}
このコードスニペットは、シンプル商品が在庫ありの場合にカートに追加ボタンを表示します。
サンプル2: 変数商品のカートに追加ボタン
$product = wc_get_product( $product_id );
if ( $product->is_type( 'variable' ) ) {
echo $product->get_type_add_to_cart();
}
このコードは、製品が変数商品である場合に、その商品に対するカートに追加ボタンを作成します。
サンプル3: 外部商品へのリンク
$product = wc_get_product( $product_id );
if ( $product->is_type( 'external' ) ) {
$button = '<a href="' . esc_url( $product->get_product_url() ) . '" class="button">外部サイトで購入</a>';
echo $button;
}
外部商品に対して、カートに追加ボタンの代わりに外部サイトへの購入リンクを提供します。
サンプル4: ログインユーザー向けのボタン
$current_user = wp_get_current_user();
if ( $current_user->exists() ) {
echo $product->get_type_add_to_cart();
}
ユーザーがログインしている場合にのみカートに追加ボタンを表示します。
サンプル5: 商品の在庫ステータスによる表示切替
$product = wc_get_product( $product_id );
if ( $product->is_in_stock() && $product->get_stock_quantity() > 0 ) {
echo $product->get_type_add_to_cart();
} else {
echo '<p>この商品は売り切れです。</p>';
}
在庫があればカートに追加ボタンを表示し、そうでない場合は売り切れメッセージを表示します。