Woocommerceで、ホームページのショッピングカートアイコンにカーソルを合わせると表示されるドロップダウンメニューの[カートを表示]リンクと[チェックアウト]リンクのURLを変更するにはどうすればよいですか?
「カート」ページと「チェックアウト」ページを設定しましたが、これらにリンクされていません。
これらのページはURLで直接表示できます。 http:// mysite/cart および http:// mysite/checkout
ミニカートボタンのリンクは常に正しいカートとチェックアウトページを指しているため、テーマ(またはプラグイン)のどこかに問題があるようです。
ミニカートボタンが引っ掛かっていますwoocommerce_widget_shopping_cart_buttons
アクションフック(cart/mini-cart.php WooCommerceテンプレート内)。詳細がわかります includes/wc-template-hooks.phpのこちら コアファイル。ボタンを表示している 2関数 を呼び出します。
まず、WordPressパーマリンクを更新してみてください。WPSettings> パーマリンク:
ページの最後で[保存]をクリックします。カートを空にして、もう一度試して、何かが変わるかどうかを確認してください。
以下のコードでは、最初に元のボタンを削除し、リンクがカスタマイズされているものと同じボタンに置き換えます。それぞれについて、必要に応じてリンクを足に変更できます(リンクに追加しました?id=1
(最後に)テスト目的で、変更を確認するため):
add_action( 'woocommerce_widget_shopping_cart_buttons', function(){
// Removing Buttons
remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_button_view_cart', 10 );
remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_proceed_to_checkout', 20 );
// Adding customized Buttons
add_action( 'woocommerce_widget_shopping_cart_buttons', 'custom_widget_shopping_cart_button_view_cart', 10 );
add_action( 'woocommerce_widget_shopping_cart_buttons', 'custom_widget_shopping_cart_proceed_to_checkout', 20 );
}, 1 );
// Custom cart button
function custom_widget_shopping_cart_button_view_cart() {
$original_link = wc_get_cart_url();
$custom_link = home_url( '/cart/?id=1' ); // HERE replacing cart link
echo '<a href="' . esc_url( $custom_link ) . '" class="button wc-forward">' . esc_html__( 'View cart', 'woocommerce' ) . '</a>';
}
// Custom Checkout button
function custom_widget_shopping_cart_proceed_to_checkout() {
$original_link = wc_get_checkout_url();
$custom_link = home_url( '/checkout/?id=1' ); // HERE replacing checkout link
echo '<a href="' . esc_url( $custom_link ) . '" class="button checkout wc-forward">' . esc_html__( 'Checkout', 'woocommerce' ) . '</a>';
}
コードは、アクティブな子テーマ(またはテーマ)のfunction.phpファイル、または任意のプラグインファイルに含まれます。
すべてのコードはWoocommerce3 +でテストされ、機能します。