PHP Classes

File: woocommerce-correios.php

Recommend this page to a friend!
  Classes of Julio Cezar Kronbauer   PHP WooCommerce Correios   woocommerce-correios.php   Download  
File: woocommerce-correios.php
Role: Application script
Content type: text/plain
Description: Application script
Class: PHP WooCommerce Correios
Woocommerce plugin for shipping via Correios
Author: By
Last change: Release 3.1.5, see readme.txt for changelog.
Merge pull request #67 from alvaroseparovich/master

Adiciona um link útil no comentário da encomenda.
Version 3.1.3
Version 3.1.2
Version 3.1.1
Date: 7 years ago
Size: 7,741 bytes
 

Contents

Class file image Download
<?php
/**
 * Plugin Name: WooCommerce Correios
 * Plugin URI: https://github.com/claudiosanches/woocommerce-correios
 * Description: Adds Correios shipping methods to your WooCommerce store.
 * Author: Claudio Sanches
 * Author URI: https://claudiosmweb.com
 * Version: 3.1.5
 * License: GPLv2 or later
 * Text Domain: woocommerce-correios
 * Domain Path: /languages
 *
 * WooCommerce Correios is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * any later version.
 *
 * WooCommerce Correios is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with WooCommerce Correios. If not, see
 * <https://www.gnu.org/licenses/gpl-2.0.txt>.
 *
 * @package WooCommerce_Correios
 */


if ( ! defined( 'ABSPATH' ) ) {
    exit;
// Exit if accessed directly.
}

if ( !
class_exists( 'WC_Correios' ) ) :

   
/**
     * WooCommerce Correios main class.
     */
   
class WC_Correios {

       
/**
         * Plugin version.
         *
         * @var string
         */
       
const VERSION = '3.1.5';

       
/**
         * Instance of this class.
         *
         * @var object
         */
       
protected static $instance = null;

       
/**
         * Initialize the plugin public actions.
         */
       
private function __construct() {
           
add_action( 'init', array( $this, 'load_plugin_textdomain' ), -1 );

           
// Checks with WooCommerce is installed.
           
if ( class_exists( 'WC_Integration' ) ) {
               
$this->includes();

                if (
is_admin() ) {
                   
$this->admin_includes();
                }

               
add_filter( 'woocommerce_integrations', array( $this, 'include_integrations' ) );
               
add_filter( 'woocommerce_shipping_methods', array( $this, 'include_methods' ) );
               
add_filter( 'woocommerce_email_classes', array( $this, 'include_emails' ) );
            } else {
               
add_action( 'admin_notices', array( $this, 'woocommerce_missing_notice' ) );
            }
        }

       
/**
         * Return an instance of this class.
         *
         * @return object A single instance of this class.
         */
       
public static function get_instance() {
           
// If the single instance hasn't been set, set it now.
           
if ( null === self::$instance ) {
               
self::$instance = new self;
            }

            return
self::$instance;
        }

       
/**
         * Load the plugin text domain for translation.
         */
       
public function load_plugin_textdomain() {
           
load_plugin_textdomain( 'woocommerce-correios', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
        }

       
/**
         * Includes.
         */
       
private function includes() {
            include_once
dirname( __FILE__ ) . '/includes/wc-correios-functions.php';
            include_once
dirname( __FILE__ ) . '/includes/class-wc-correios-install.php';
            include_once
dirname( __FILE__ ) . '/includes/class-wc-correios-package.php';
            include_once
dirname( __FILE__ ) . '/includes/class-wc-correios-webservice.php';
            include_once
dirname( __FILE__ ) . '/includes/class-wc-correios-webservice-international.php';
            include_once
dirname( __FILE__ ) . '/includes/class-wc-correios-autofill-addresses.php';
            include_once
dirname( __FILE__ ) . '/includes/class-wc-correios-tracking-history.php';
            include_once
dirname( __FILE__ ) . '/includes/class-wc-correios-rest-api.php';

           
// Integration.
           
include_once dirname( __FILE__ ) . '/includes/integrations/class-wc-correios-integration.php';

           
// Shipping methods.
           
if ( defined( 'WC_VERSION' ) && version_compare( WC_VERSION, '2.6.0', '>=' ) ) {
                include_once
dirname( __FILE__ ) . '/includes/abstracts/abstract-wc-correios-shipping.php';
                include_once
dirname( __FILE__ ) . '/includes/abstracts/abstract-wc-correios-shipping-carta.php';
                include_once
dirname( __FILE__ ) . '/includes/abstracts/abstract-wc-correios-shipping-impresso.php';
                include_once
dirname( __FILE__ ) . '/includes/abstracts/abstract-wc-correios-shipping-international.php';
                foreach (
glob( plugin_dir_path( __FILE__ ) . '/includes/shipping/*.php' ) as $filename ) {
                    include_once
$filename;
                }

               
// Update settings to 3.0.0 when using WooCommerce 2.6.0.
               
WC_Correios_Install::upgrade_300_to_wc_260();
            } else {
                include_once
dirname( __FILE__ ) . '/includes/shipping/class-wc-correios-shipping-legacy.php';
            }

           
// Update to 3.0.0.
           
WC_Correios_Install::upgrade_300();
        }

       
/**
         * Admin includes.
         */
       
private function admin_includes() {
            include_once
dirname( __FILE__ ) . '/includes/admin/class-wc-correios-admin-orders.php';
        }

       
/**
         * Include Correios integration to WooCommerce.
         *
         * @param array $integrations Default integrations.
         *
         * @return array
         */
       
public function include_integrations( $integrations ) {
           
$integrations[] = 'WC_Correios_Integration';

            return
$integrations;
        }

       
/**
         * Include Correios shipping methods to WooCommerce.
         *
         * @param array $methods Default shipping methods.
         *
         * @return array
         */
       
public function include_methods( $methods ) {
           
// Legacy method.
           
$methods['correios-legacy'] = 'WC_Correios_Shipping_Legacy';

           
// New methods.
           
if ( defined( 'WC_VERSION' ) && version_compare( WC_VERSION, '2.6.0', '>=' ) ) {
               
$methods['correios-pac'] = 'WC_Correios_Shipping_PAC';
               
$methods['correios-sedex'] = 'WC_Correios_Shipping_SEDEX';
               
$methods['correios-sedex10-envelope'] = 'WC_Correios_Shipping_SEDEX_10_Envelope';
               
$methods['correios-sedex10-pacote'] = 'WC_Correios_Shipping_SEDEX_10_Pacote';
               
$methods['correios-sedex12'] = 'WC_Correios_Shipping_SEDEX_12';
               
$methods['correios-sedex-hoje'] = 'WC_Correios_Shipping_SEDEX_Hoje';
               
$methods['correios-esedex'] = 'WC_Correios_Shipping_ESEDEX';
               
$methods['correios-carta-registrada'] = 'WC_Correios_Shipping_Carta_Registrada';
               
$methods['correios-impresso-normal'] = 'WC_Correios_Shipping_Impresso_Normal';
               
$methods['correios-impresso-urgente'] = 'WC_Correios_Shipping_Impresso_Urgente';
               
$methods['correios-mercadoria-expressa'] = 'WC_Correios_Shipping_Mercadoria_Expressa';
               
$methods['correios-mercadoria-economica'] = 'WC_Correios_Shipping_Mercadoria_Economica';
               
$methods['correios-leve-internacional'] = 'WC_Correios_Shipping_Leve_Internacional';

               
$old_options = get_option( 'woocommerce_correios_settings' );
                if ( empty(
$old_options ) ) {
                    unset(
$methods['correios-legacy'] );
                }
            }

            return
$methods;
        }

       
/**
         * Include emails.
         *
         * @param array $emails Default emails.
         *
         * @return array
         */
       
public function include_emails( $emails ) {
            if ( ! isset(
$emails['WC_Correios_Tracking_Email'] ) ) {
               
$emails['WC_Correios_Tracking_Email'] = include( dirname( __FILE__ ) . '/includes/emails/class-wc-correios-tracking-email.php' );
            }

            return
$emails;
        }

       
/**
         * WooCommerce fallback notice.
         */
       
public function woocommerce_missing_notice() {
            include_once
dirname( __FILE__ ) . '/includes/admin/views/html-admin-missing-dependencies.php';
        }

       
/**
         * Get main file.
         *
         * @return string
         */
       
public static function get_main_file() {
            return
__FILE__;
        }

       
/**
         * Get plugin path.
         *
         * @return string
         */
       
public static function get_plugin_path() {
            return
plugin_dir_path( __FILE__ );
        }

       
/**
         * Get templates path.
         *
         * @return string
         */
       
public static function get_templates_path() {
            return
self::get_plugin_path() . 'templates/';
        }
    }

   
add_action( 'plugins_loaded', array( 'WC_Correios', 'get_instance' ) );

endif;