Ir para conteúdo

POWERED BY:

  • 0
Robson Teixeira

Me ajude Editar campo do Checkout woocommerce

Pergunta

Me ajude o plugin esta tudo certo só nao esta aparecendo o numero da residência e o numero do telefone quando finaliza a compra, tem um botão ao finalizar a compra que manda a ordem de checkout pelo whatsapp  .. Preciso que apareça esses campos ..

 

 

<?php
// Make sure we don't expose any info if called directly
if ( ! defined( 'ABSPATH' ) ) {
    exit; // Exit if accessed directly
}
/**
 * Plugin Name: WFCM Whatsapp Checkout
 * Description: Whatsapp checkout plugin for WFCM.
 * Version: 1.1
 * Author: aditbaco, Plonknimbuzz
 * Author URI: https://github.com/aditbaco/WA-Checkout-WCFM-Woocommerce
 * Requires at least Woocommerce : 4.1
 * Requires at least WCFM Front End Manager : 6.4
 * Requires at least WCFM Marketplace Multi Vendor : 3.4
 * Tested up to Wordpress : 5.5
 * License: GPLv2 or later
 * License URI: https://www.gnu.org/licenses/gpl-2.0.html
 */

 // Check if WooCommerce is active
 function WCFMWC_check_woocommece_active(){
    if ( ! is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
        echo "<div class='error'><p><strong>WCFM Whatsapp Checkout</strong> requires <strong>WooCommerce plugin.</strong>&nbsp; Please <a href='https://wordpress.org/plugins/woocommerce' target=_blank>install</a> and activate it.</p></div>";
        }
    }
    add_action('admin_notices', 'WCFMWC_check_woocommece_active');

// Check if WCFM is active
 function WCFMWC_check_wcmv_active(){
    if ( ! is_plugin_active( 'wc-multivendor-marketplace/wc-multivendor-marketplace.php' ) ) {
        echo "<div class='error'><p><strong>WCFM Whatsapp Checkout</strong> requires <strong>WC Multivendor Marketplace plugin.</strong>&nbsp; Please <a href='https://wordpress.org/plugins/wc-multivendor-marketplace' target=_blank>install</a> and activate it.</p></div>";
        }
    }
    add_action('admin_notices', 'WCFMWC_check_wcmv_active');

// Check if WCFM is active
 function WCFMWC_check_wcfm_active(){
    if ( ! is_plugin_active( 'wc-frontend-manager/wc_frontend_manager.php' ) ) {
        echo "<div class='error'><p><strong>WCFM Whatsapp Checkout</strong> requires <strong>WC Multivendor Marketplace - Frontend Manager plugin.</strong>&nbsp; Please <a href='https://wordpress.org/plugins/wc-frontend-manager' target=_blank>install</a> and activate it.</p></div>";
        }
    }
    add_action('admin_notices', 'WCFMWC_check_wcfm_active');

//register Whatsapp number to vendors store setting
add_filter( 'wcfm_marketplace_settings_fields_general', 'vendor_store_custom_fields' );
function vendor_store_custom_fields($settings_fields_general) {
    global $WCFM, $WCFMmp, $wp;
    if(isset($settings_fields_general['banner'])){
        return $settings_fields_general; //fix bug on admin store manage page
    }
    if( current_user_can('manage_woocommerce') ) {
        $van_cur_url = add_query_arg( array(), $wp->request );
        $van_vendorid = substr( $van_cur_url, strrpos( $van_cur_url, '/' ) + 1 );
        $user_id = intval( $van_vendorid );
    }
    else {
        $user_id = apply_filters( 'wcfm_current_vendor_id', get_current_user_id() );
    }
    //Register Whatsapp Number button and option in vendor's profile
    $store_whatsapp_opt = array( 'yes' => __( 'Yes', 'wc-frontend-manager' ), 'no' => __( 'No', 'wc-frontend-manager' ) );
    $vendor_data = get_user_meta( $user_id, 'wcfmmp_profile_settings', true );
    $store_whatsapp_show = isset( $vendor_data['store_whatsapp_show'] ) ? $vendor_data['store_whatsapp_show'] : 'no';
    $store_whatsapp = isset( $vendor_data['store_whatsapp_number'] ) ? $vendor_data['store_whatsapp_number'] : null;
    $settings_fields_general["store_whatsapp_number"] = array('label' => __('Whatsapp Number', 'wc-frontend-manager') , 'type' => 'text',  'class' => 'wcfm-text wcfm_ele ', 'label_class' => 'wcfm_title', 'value' => $store_whatsapp );
    $settings_fields_general["store_whatsapp_show"] = array('label' => __('Show Whatsapp button on Checkout', 'wc-frontend-manager') , 'type' => 'select', 'options' => $store_whatsapp_opt, 'class' => 'wcfm-select wcfm_ele', 'label_class' => 'wcfm_title', 'value' => $store_whatsapp_show );
    return $settings_fields_general;
}

//Register Show whatsapp number on vendor's page
add_action( 'after_wcfmmp_sold_by_info_product_page', 'cus_after_wcfmmp_sold_by_info_product_page' );
function cus_after_wcfmmp_sold_by_info_product_page( $vendor_id ) {
    $vendor_data = get_user_meta( $vendor_id, 'wcfmmp_profile_settings', true );
    $whatsapp = isset($vendor_data['store_whatsapp_number'])?$vendor_data['store_whatsapp_number']:null;
    if( isset($vendor_data['store_whatsapp_show']) && $vendor_data['store_whatsapp_show'] == 'yes' && !empty($whatsapp)) {
        echo '<div class="wcfmmp_store_tab_info wcfmmp_store_info_address"><i class="wcfmfa fa-phone" aria-hidden="true"></i><span>' . $whatsapp . '</div>';
    }
}

//Register different WA number checkout based on WA number on vendor stores setting
add_action( 'woocommerce_before_thankyou', 'wfcm_add_assets_wa_checkout' );
add_filter( 'woocommerce_thankyou_order_received_text', 'wfcm_wa_thankyou', 10, 2 );

function wfcm_wa_thankyou($title, $order) {
    $data =[];
    $shipping_data =[];
    $judul = 'Obrigado pelo seu pedido.';
    $subtitle = 'Conclua sua compra clicando no botão abaixo para que o pedido possa ser confirmado pelo Vendedor.';
    
    $mode = ($order->get_billing_address_1() != $order->get_shipping_address_1() || $order->get_billing_first_name() != $order->get_shipping_first_name())?'shipping':'billing';
    //$mode = 'shipping'; //force shipping mode
    $country =  WC()->countries->countries[ $order->{"get_".$mode."_country"}() ];
    $states = WC()->countries->get_states( $order->{"get_".$mode."_country"}() );
    $province =  $states[ $order->{"get_".$mode."_state"}() ];
    $shipping_method_title = $order->get_shipping_method();
    foreach( $order->get_items( 'shipping' ) as $item_id => $shipping_item_obj ){
        $found=false;
        foreach($shipping_item_obj->get_meta_data() as $i=>$val){
            $d = $val->get_data();
            if($d['key']=='vendor_id'){
                $shipping_data[$d['value']] = [
                    'title'=>$shipping_item_obj->get_method_title(),
                    'total'=>$shipping_item_obj->get_total(),
                ];
                $found = true;
                break;
            }
            if(!$found){
                $shipping_data[0] = [
                    'title'=>$shipping_item_obj->get_method_title(),
                    'total'=>$shipping_item_obj->get_total(),
                ];
            }
        }
    }

    foreach($order->get_items() as $item){
        $vendor_id = $item->get_meta('_vendor_id');
        if(!isset($data[$vendor_id])){
            $vendor_data = get_user_meta( $vendor_id, 'wcfmmp_profile_settings', true );
            $whatsapp_show = isset( $vendor_data['store_whatsapp_show'] ) ? $vendor_data['store_whatsapp_show'] : 'no';
            $whatsapp = isset( $vendor_data['store_whatsapp_number'] ) ? $vendor_data['store_whatsapp_number'] : null;
            $vendor_name =  get_user_meta( $vendor_id, 'store_name', true );
            if($whatsapp_show!='yes' || empty($whatsapp) ){
                continue;
            }
            $items = $item->get_quantity()."x - *".$item->get_name()."*%0A";
            $items .= "URL: ".get_permalink( $item->get_product_id() ) ."%0A";
            $data[$vendor_id]=[
                'whatsapp'=>$whatsapp,
                'vendor_name'=>$vendor_name,
                'items'=>$items,
                'total'=>$item->get_total(),
            ];
        }else{
            $items = $item->get_quantity()."x - *".$item->get_name()."*%0A";
            $items .= "Tautan: ".get_permalink( $item->get_product_id() ) ."%0A";
            $data[$vendor_id]['items'] .= $items;
            $data[$vendor_id]['total'] += $item->get_total();
        }
    }
    
    if(empty($data)){
        return $title;
    }
    //Loop each checkout vendors whatsapp button
    $html ='';
    foreach($data as $vendor_id=>$d){
        $msg = "*Olá, aqui estão os detalhes do meu pedido:*%0A%0A";
        $msg .= $d['items']."%0A";
        $msg .="*Nº do pedido: ".$order->get_id()."%0A";
        $msg .="*Valor total*: ".strip_tags(wc_price($d['total']))."%0A";
        $msg .="*Forma de pagamento*: ".$order->get_payment_method_title()."%0A";
        if(isset($shipping_data[$vendor_id])){
            $msg .="*Forma de entrega*: ".$shipping_data[$vendor_id]['title']." ".strip_tags(wc_price($shipping_data[$vendor_id]['total']))."%0A%0A";
        }elseif(isset($shipping_data[0])){
            $msg .="*Forma de entrega*: ".$shipping_data[0]['title']." ". strip_tags(wc_price($shipping_data[0]['total']))."%0A%0A";
        }
        
        $msg .="*Informações do Comprador*: %0A";
        $msg .="Nome: ".$order->{"get_".$mode."_first_name"}()." ".$order->{"get_".$mode."_last_name"}()."%0A";
        $msg .="Endereço: ".implode(', ',[$order->{"get_".$mode."_address_1"}(),$order->{"get_".$mode."_address_2"}()])."%0A";
        $msg .="Cidade: ".$order->{"get_".$mode."_city"}().", ".$province.", ".$country."%0A";
        $msg .="CEP: ".$order->{"get_".$mode."_postcode"}()."%0A";
        if($mode=='shipping'){
            $email = (isset($order->shipping['email']))?$order->shipping['email']:$order->get_billing_email();
            $phone = (isset($order->shipping['phone']))?$order->shipping['phone']:$order->get_billing_phone();
        }else{
            $email = $order->get_billing_email();
            $phone = $order->get_billing_phone();
        }
        $msg .="E-mail: ".$email."%0A";
        $msg .="Telefone: ".$phone."%0A";
        $msg .= "Observações: ".$order->get_customer_note()."%0A";
        $msg .="%0A";
        $msg .="Muito Obrigado!%0A%0A";
        $msg .= "Data da Mensagem: ".get_post_time( 'j-F-Y - H:i', false, $order->get_id(), true );
        $btn_text ='Enviar compra para: '.$d['vendor_name'];
        $html .=  '<a id="sendbtn" href="https://api.whatsapp.com/send?phone='.$d['whatsapp'].'&text='. ($msg).'" target="_blank" class="wa-order-thankyou">'.$btn_text.'</a><br>';
    }

    return '<div class="thankyoucustom_wrapper">
                <h1 class="thankyoutitle">'.$judul.'</h1>
                <p class="subtitle">'.$subtitle.'</p>'.
                $html.
            '</div>';
}

function wfcm_add_assets_wa_checkout(){
    wp_register_style( 'wa_checkout_style',  plugin_dir_url( __FILE__ ) . 'style.css' );
    wp_enqueue_style( 'wa_checkout_style' );
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

0 respostas a esta questão

Recommended Posts

Até agora não há respostas para essa pergunta

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Gdonato
      Ola pessoal, baixei um tema wordpress Profolio e alterei ja grande parte do tema, porem estou com 2 problemas, um que os icones das redes sociais nao aparecem, altero, publico e nao aparece e  nao estou achando onde alterar a parte OUR PORTFOLIO onde esta em ingles, alguem pode me ajudar onde acho para editar e alterar?
    • Por Gdonato
      Ola pessoal, baixei um tema wordpress Profolio e alterei ja grande parte do tema, porem estou com 2 problemas, um que os icones das redes sociais nao aparecem, altero, publico e nao aparece e  nao estou achando onde alterar a parte OUR PORTFOLIO onde esta em ingles, alguem pode me ajudar onde acho para editar e alterar?
    • Por Gdonato
      Ola pessoal, baixei um tema wordpress Profolio e alterei ja grande parte do tema, porem estou com 2 problemas, um que os icones das redes socias nao aparecem, altero, publico e nao aparece e  nao estou achando onde alterar a parte OUR PORTFOLIO onde esta em ingles, alguem pode me ajudar onde acho para editar e alterar?
    • Por Rafael_Ferreira
      Não consigo carregar a imagem do captcha do meu formulário. Foi testado com o xampp e easyphp. Também não carregou a imagem de outros captcha. 
       
       
    • Por luiz monteiro
      Olá.
      Estou atualizando meu conhecimento com Front-End e me deparei com o seguinte problema.
      Criei um sistema para fazer o upload de imagens e alguns campos text.
      Algo bem simples para depois começar a estudar javascript para mostrar a miniatura....
      Mas quando saio do navegador Chrome ou da aba por mais de 3 minutos, ao retornar o navegador as vezes atualiza ou nem chega atualizar mas limpa os campos.
      Estou usando um Smart Motorola com Android, mas um amigo testou no iPhone e acontece a mesma coisa.
      Gostaria de saber se há como usar javascript para evitar isso?
      Agradeço desde já.

      <!DOCTYPE html>
      <html>
      <head>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1">
          <title>Uploader</title>
      </head>
      <body>
          <form action="?" method="post" enctype="multipart/form-data">
              <br><br>
              <div>selecione a imagem 1</div>
              <input type="file" name="foto1" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem1">
              
              <br><br>
              <input type="file" name="foto2" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem2">
              
              <br><br>

              <input type="file" name="foto3" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem3">
              
              <br><br>
              <input type="submit" value="Enviar">
              <br><br>
          </form>
      <?php
      if ($_SERVER['REQUEST_METHOD'] == 'POST')
      {
          vardump ($_FILES);
      }
      ?>
      </body>
      </html>
       
       
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.