Este snippet cria um shortcode [wc_booking_details]
que exibe os detalhes de uma reserva do WooCommerce baseada no ID do pedido fornecido na URL. Inclui informações sobre o pedido, cliente e detalhes da reserva.
Como funciona:
- Funções Auxiliares:
get_booking_status_name($status)
: Converte o status da reserva em um nome legível.get_person_type_name($person_type_id)
: Converte o ID do tipo de pessoa em um nome legível.
- Função do Shortcode:
function wc_booking_details_shortcode() { ... }
: Define a funçãowc_booking_details_shortcode
que gera o HTML para os detalhes da reserva.
- Verificação e Recuperação do Pedido:
if ( ! isset( $_GET['pedido'] ) ) { ... }
: Verifica se o ID do pedido foi fornecido na URL.$order_id = intval( $_GET['pedido'] );
: Obtém o ID do pedido da URL.$order = wc_get_order( $order_id );
: Recupera o pedido pelo ID.
- Verificação e Recuperação da Reserva:
$booking_ids = WC_Booking_Data_Store::get_booking_ids_from_order_id( $order_id );
: Recupera os IDs das reservas associadas ao pedido.$booking = new WC_Booking( $booking_id );
: Recupera os detalhes da reserva.
- Recuperação de Dados do Cliente:
$customer_id = $order->get_customer_id();
: Obtém o ID do cliente.$customer = new WP_User( $customer_id );
: Recupera os detalhes do cliente.$customer_email = $customer->user_email;
: Recupera o email do cliente.$customer_phone = get_user_meta( $customer_id, 'billing_phone', true );
: Recupera o telefone do cliente.$customer_cpf = get_user_meta( $customer_id, 'billing_cpf', true );
: Recupera o CPF do cliente.
- Recuperação de Dados Específicos da Reserva:
$persons = $booking->get_persons();
: Recupera o número de pessoas na reserva.$product = $booking->get_product();
: Recupera o produto reservado.
- Geração do HTML:
- Utiliza
ob_start()
eob_get_clean()
para capturar o HTML gerado e retornar como string. - Estrutura o HTML em seções para exibir os detalhes gerais, especificações da reserva, informações das pessoas e horários/datas da reserva.
- Utiliza
- Registro do Shortcode:
add_shortcode( 'wc_booking_details', 'wc_booking_details_shortcode' );
: Registra o shortcode[wc_booking_details]
no WordPress.
Instruções de Uso
- Adicione o código ao arquivo
functions.php
do seu tema ou em um plugin específico. - Use o shortcode
[wc_booking_details]
em uma página ou post onde deseja exibir os detalhes da reserva. - Certifique-se de que a URL inclui o parâmetro
pedido
com o ID do pedido, por exemplo:https://seusite.com/sua-pagina?pedido=1234
.