概要
woocommerce_cart_item_permalink
フィルタは、WooCommerceのカート内のアイテムのパーマリンクを変更するためのフックです。このフィルタを使用することで、特定の商品やカートアイテムのリンクをカスタマイズしたり、新しいURL構造を実装したりすることが可能です。よく使われる場面としては以下のようなケースがあります:
- 特定のプロモーションページへのリンクに変更する
- 商品のバリエーションに基づいてリンクを動的に生成する
- カートページのデザイン調整に合わせてリンクを変更する
- 外部商品へのアフィリエイトリンクに変更する
- SEO向上のためのカスタムURLを設定する
- 特定のユーザーグループ向けの特別なリンクを提供する
構文
add_filter('woocommerce_cart_item_permalink', 'custom_permalink_function', 10, 3);
パラメータ
$permalink
(string): 現在のアイテムのパーマリンク$cart_item
(array): カートアイテムの詳細$cart_item_key
(string): カートアイテムのキー
戻り値
- (string): 修正されたパーマリンク
使用可能なバージョン
- WooCommerce: 3.0以降
- 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
add_filter('woocommerce_cart_item_permalink', 'modify_cart_item_permalink', 10, 3);
function modify_cart_item_permalink($permalink, $cart_item, $cart_item_key) {
// 商品IDに基づいてカスタムリンクを生成
return 'https://example.com/custom-product/' . $cart_item['product_id'];
}
このサンプルコードでは、カート内の商品のパーマリンクをカスタムURLに変更しています。
サンプルコード2
add_filter('woocommerce_cart_item_permalink', 'affiliate_link_cart_item_permalink', 10, 3);
function affiliate_link_cart_item_permalink($permalink, $cart_item, $cart_item_key) {
// アフィリエイト用のURLを返す
return 'https://affiliate.com/product/' . $cart_item['product_id'];
}
このサンプルコードは、カートアイテムのパーマリンクをアフィリエイトリンクに変更しています。
サンプルコード3
add_filter('woocommerce_cart_item_permalink', 'specific_user_link', 10, 3);
function specific_user_link($permalink, $cart_item, $cart_item_key) {
// 特定のユーザー用のカスタムリンクを返す
if (is_user_logged_in() && current_user_can('special_role')) {
return 'https://example.com/special-offer';
}
return $permalink;
}
このサンプルコードは、特定のユーザーグループのユーザーに異なるパーマリンクを提供します。
サンプルコード4
add_filter('woocommerce_cart_item_permalink', 'dynamic_variation_link', 10, 3);
function dynamic_variation_link($permalink, $cart_item, $cart_item_key) {
// 商品のバリエーションを考慮したリンク
if (isset($cart_item['variation_id']) && $cart_item['variation_id'] > 0) {
return 'https://example.com/variation/' . $cart_item['variation_id'];
}
return $permalink;
}
このサンプルコードは、商品バリエーションに基づいて異なるリンクを生成します。
サンプルコード5
add_filter('woocommerce_cart_item_permalink', 'promotional_link', 10, 3);
function promotional_link($permalink, $cart_item, $cart_item_key) {
// プロモーションページへのリンクを設定
return 'https://example.com/promotions/' . $cart_item['product_id'];
}
このサンプルコードは、カートアイテムのリンクをプロモーションページに変更しています。