Como faço para configurar automaticamente WooCommerce produtos para redigir se esgotaram

votos
0

Eu tentei usar a opção 'Ocultar se esgotado' em WooCommerce. Mas eu estou usando um plugin diferente para exibir meus produtos (GridFX Maçonaria Galeria) e ainda está mostrando os produtos vendidos para fora. Existe uma maneira de mudar o produto para elaborar quando o último item foi comprado e é vendido para fora? Existe um trecho de fazer isso?

Publicado 25/02/2016 em 01:22
usuário
Em outras línguas...                            


2 respostas

votos
0

Melhor maneira é definir estoque do produto (1 no seu caso). Selecione 'Ocultar fora de stock'. Ele irá esconder fora de stock. Mas se você realmente quer esconder produtos encomendados, em seguida, ver o meu código abaixo:

//functions.php    

add_action( 'woocommerce_thankyou', 'your_func', 10, 1 );

    function your_func($order_id) {

        $order = new WC_Order( $order_id );

        $all_products = $order->get_items();
        foreach ($all_products as $product){
            // This will only work if stock management has been enabled
            if( ! $product->get_stock_quantity() )
                set_post_type ($product['product_id'], 'draft');
        }
    }

Isto irá esconder todos os produtos adicionados no carrinho para a ordem. Você pode personalizar esta função como você quer.

Respondeu 25/02/2016 em 03:45
fonte usuário

votos
0

A resposta anterior por Maha Dev não pode trabalhar.

Em um tema arquivar funções do get_stock_quantity()método não existe a menos que você chamar os dados de produtos que utilizam wc_get_product.

Usando set_post_typeirá alterar o tipo real do post, não é status, você precisa usar wp_update_poste definir o status post.

Este é o código que eu acabei usando:

/*
* Unpublish products after purchase
*/
function lbb_unpublish_prod($order_id) {

    $order = new WC_Order( $order_id );

    $all_products = $order->get_items();
    foreach ($all_products as $product){
        $product_object = wc_get_product($product['product_id']);
            // This will only work if stock management has been enabled
        if( ! $product_object->get_stock_quantity() ) {
            wp_update_post(array(
                'ID' => $product['product_id'],
                'post_status' => 'draft'
                ));
        }

    }
}
add_action( 'woocommerce_thankyou', 'lbb_unpublish_prod', 10, 1 );
Respondeu 31/07/2017 em 10:33
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more