すべてのもののWordPressのように異なる post_type
でポストとして扱われ、だから、いつでもポスト/製品がが と呼ばれる更新されます。
function wh_trashOutOfStockProduct($post_id, $post, $update) {
$post_type = get_post_type($post_id);
// If this isn't a 'product' post, don't update it.
if ('product' != $post_type)
return;
$product = wc_get_product($post_id);
//if product is Out of Stock trash it
if (!$product->is_in_stock()) {
wp_trash_post($post_id);
}
}
add_action('save_post', 'wh_trashOutOfStockProduct', 10, 3);
コードは、あなたのアクティブな子テーマ(またはテーマ)のfunction.php
ファイルになります。また、任意のプラグインのPHPファイルにもあります。
UPDATED
ワンタイム利用機能
add_action('wp', 'wh_trashAllProductOnce');
function wh_trashAllProductOnce()
{
$params = [
'posts_per_page' => -1,
'post_type' => 'product'
];
$wc_query = new WP_Query($params);
if ($wc_query->have_posts()) :
while ($wc_query->have_posts()) :
$wc_query->the_post();
$product_id = get_the_ID();
$product = wc_get_product($product_id);
//if product is Out of Stock trash it
if (!$product->is_in_stock())
{
wp_trash_post($product_id);
}
endwhile;
wp_reset_postdata();
else:
_e('No Products');
endif;
}
アクティブテーマfunctions.php
ファイルに上記のコードを追加して、一度だけあなたのウェブサイトを実行し、上記のコードを削除し、それ在庫切れの商品はすべて捨ててしまいます。
は、あなたが長い時間のためのコードを保持したい場合は、クエリと実行の時間を短縮させ
を更新しました。
add_action('admin_init', 'wh_trashAllProductOnce');
function wh_trashAllProductOnce() {
$current_user = wp_get_current_user();
//if loggedin user does not have admin previlage
if (!user_can($current_user, 'administrator')) {
return;
}
$params = [
'posts_per_page' => -1,
'post_type' => 'product',
'post_status' => 'publish'
];
$wc_query = new WP_Query($params);
if ($wc_query->have_posts()) :
while ($wc_query->have_posts()) :
$wc_query->the_post();
$product_id = get_the_ID();
$product = wc_get_product($product_id);
//if product is Out of Stock trash it
if (!$product->is_in_stock()) {
wp_trash_post($product_id);
}
endwhile;
wp_reset_postdata();
endif;
}
この関数は、トリガーとなります上記のアクティブなテーマfunctions.php
ファイル内のコードといつでもダッシュボードへの管理ログインを追加し、任意のバックエンドのページにアクセスします。
ご注意:それだけ 1時間のために、上記の方法のいずれかを使用することをお勧めします、またはあなただけの必要なときに、関数の使用 それをアンコメントし、再度コメント。
希望します。
あなたがWoocommerceの下で、[ツール]メニューの[ワンクリックでこれを行うことができます
はご協力いただきありがとうございますが、それは製品のゴミ箱はありません。私はここに "if(!$ product-> is_in_stock())"という問題があるかもしれないと思っています。私は少し知識があることを知っている私はそれがIF製品= "外注"であると思うだろうごみ –
@ Ryon:あなたは既存のすべての製品をごみ箱に入れたいですか?あなたは単純な製品または可変製品を持っていますか? 'is_in_stock()'は 'bool'を返すメソッドです。 –
既存の製品はすべてゴミ箱に入れてください。すべての製品はシンプルです。 –