私はWooCommerceショップを持っていて、多くの商品を販売しています。は、ごとに1個しかありません。商品をカスタムページにリダイレクト
ユニークな数量の製品を販売した後、私は「在庫切れ」を自動的に表示しますが、この商品ページをカスタムページにリダイレクトしたいと思います。
Plugin => Nothingのために何時間も検索します。
解決策はありますか?
ありがとうございました。
私はWooCommerceショップを持っていて、多くの商品を販売しています。は、ごとに1個しかありません。商品をカスタムページにリダイレクト
ユニークな数量の製品を販売した後、私は「在庫切れ」を自動的に表示しますが、この商品ページをカスタムページにリダイレクトしたいと思います。
Plugin => Nothingのために何時間も検索します。
解決策はありますか?
ありがとうございました。
は、非常にこれで、すべての製品(ページ)、カスタムページにリダイレクトすることができますコンパクトで効果的なコード:
add_action('woocommerce_before_single_product', 'product_out_of_stock_redirect');
function product_out_of_stock_redirect(){
global $product;
// Set HERE the ID of your custom page <== <== <== <== <== <== <== <== <==
$custom_page_id = 8; // But not a product page (see below)
if (!$product->is_in_stock()){
wp_redirect(get_permalink($custom_page_id));
exit(); // Always after wp_redirect() to avoid an error
}
}
コードは、あなたのアクティブな子テーマ(またはテーマ)のfunction.phpファイルやも任意のプラグインファイルになります。
あなただけのリダイレクト(ない製品ページ)ための正しいページのIDを設定する必要があります。
更新:(エラーまたは白ページを取得する場合)あなたはwp
アクションフック古典的なワードプレスを使用することができます。
ここでは、単一の製品ページをターゲットにしても$product
オブジェクト(ポストIDを持つ)のインスタンスを取得するために追加的に必要があります。
ので、コードは次のようになります。
add_action('wp', 'product_out_of_stock_redirect');
function product_out_of_stock_redirect(){
global $post;
// Set HERE the ID of your custom page <== <== <== <== <== <== <== <== <==
$custom_page_id = 8;
if(is_product()){ // Targeting single product pages only
$product = wc_get_product($post->ID);// Getting an instance of product object
if (!$product->is_in_stock()){
wp_redirect(get_permalink($custom_page_id));
exit(); // Always after wp_redirect() to avoid an error
}
}
}
コードは、あなたのアクティブな子テーマ(またはテーマ)のfunction.phpファイルやも任意のプラグインファイルになります。
このコードはテスト済みであり、動作します。
add_action('wp', 'wh_custom_redirect');
function wh_custom_redirect() {
//for product details page
if (is_product()) {
global $post;
$product = wc_get_product($post->ID);
if (!$product->is_in_stock()) {
wp_redirect('http://example.com'); //replace it with your URL
exit();
}
}
}
コードは、あなたのアクティブな子テーマ(またはテーマ)のfunction.phpファイルになります。また、任意のプラグインのPHPファイルにもあります。
コードがテストされ、動作します。
希望します。製品は簡単な条件WC_product方法is_in_stock()
を使用して株式の外にあるときwoocommerce_before_single_product
アクションフックに引っかけカスタム関数を使用して
あなたの答えをありがとう。あなたのコードは「在庫がある場合」を正しく検出しますが、リダイレクトは機能しません。空白のページにこだわって... – LionelF
@LionelF私は古典的な '' 'wp'' ** wordpressアクションフックを使って自分のコードを更新しました。今回は問題なく動作します。最初のスニペットコードでは、製品ページでリダイレクトが行われた場合にエラーが発生する可能性があります。 – LoicTheAztec
今すぐ完璧!ありがとうございました – LionelF