Não tem shortcode pra isso. Tem um plugin que transforma o add-to-cart e direciona direto pro checkout https://wordpress.org/plugins/woocommerce-direct-checkout/
Para fazer “na mão” você precisa alterar o template do add-to-cart.php (woocommerce/templates/loop/add-to-cart.php) copiando este arquivo para o seu-tema/woocommerce/loop/add-tocart.php e alterando as linhas 25 a 33 para que o botão de add-to-cart direcione o usuário direto pro carrinho e não pra paǵina do produto:
Original
sprintf( '<a rel="nofollow" href="%s" data-quantity="%s" data-product_id="%s" data-product_sku="%s" class="%s">%s</a>',
esc_url( $product->add_to_cart_url() ),
esc_attr( $quantity ),
esc_attr( $product->id ),
esc_attr( $product->get_sku() ),
esc_attr( $class ),
esc_html( $product->add_to_cart_text() )
),
Alterado
sprintf( '<a rel="nofollow" href="%s" data-quantity="%s" data-product_id="%s" data-product_sku="%s" class="%s">%s</a>',
esc_url( home_url( '/' ) . "?add-to-cart=".$product->id),
esc_attr( $quantity ),
esc_attr( $product->id ),
esc_attr( $product->get_sku() ),
esc_attr( $class ),
esc_html( $product->add_to_cart_text() )
),
Você também precisa usar o hook do WooCommerce woocommerce_add_to_cart_redirect
para quando o usuário adicionar o produto ao carrinho seja redirecionado pro checkout.
add_filter ('woocommerce_add_to_cart_redirect', 'brg_redirect_to_checkout');
function brg_redirect_to_checkout() {
$checkout_url = WC()->cart->get_checkout_url();
return $checkout_url;
}
Sim BRG Web. Na época eu acabei usando o Direct Checkout mesmo.
Valeu!