彰化一整天的論壇

 找回密碼
 立即註冊
查看: 605|回復: 0

WooCommerce has a shipping method API

[複製鏈接]
發表於 2015-9-28 20:23:18 | 顯示全部樓層 |閱讀模式


  1. <?php
  2. /*
  3. Plugin Name: Your Shipping plugin
  4. Plugin URI: http://woothemes.com/woocommerce
  5. Description: Your shipping method plugin
  6. Version: 1.0.0
  7. Author: WooThemes
  8. Author URI: http://woothemes.com
  9. */

  10. /**
  11. * Check if WooCommerce is active
  12. */
  13. if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {

  14.         function your_shipping_method_init() {
  15.                 if ( ! class_exists( 'WC_Your_Shipping_Method' ) ) {
  16.                         class WC_Your_Shipping_Method extends WC_Shipping_Method {
  17.                                 /**
  18.                                  * Constructor for your shipping class
  19.                                  *
  20.                                  * @access public
  21.                                  * @return void
  22.                                  */
  23.                                 public function __construct() {
  24.                                         $this->id                 = 'your_shipping_method'; // Id for your shipping method. Should be uunique.
  25.                                         $this->method_title       = __( 'Your Shipping Method' );  // Title shown in admin
  26.                                         $this->method_description = __( 'Description of your shipping method' ); // Description shown in admin

  27.                                         $this->enabled            = "yes"; // This can be added as an setting but for this example its forced enabled
  28.                                         $this->title              = "My Shipping Method"; // This can be added as an setting but for this example its forced.

  29.                                         $this->init();
  30.                                 }

  31.                                 /**
  32.                                  * Init your settings
  33.                                  *
  34.                                  * @access public
  35.                                  * @return void
  36.                                  */
  37.                                 function init() {
  38.                                         // Load the settings API
  39.                                         $this->init_form_fields(); // This is part of the settings API. Override the method to add your own settings
  40.                                         $this->init_settings(); // This is part of the settings API. Loads settings you previously init.

  41.                                         // Save settings in admin if you have any defined
  42.                                         add_action( 'woocommerce_update_options_shipping_' . $this->id, array( $this, 'process_admin_options' ) );
  43.                                 }

  44.                                 /**
  45.                                  * calculate_shipping function.
  46.                                  *
  47.                                  * @access public
  48.                                  * @param mixed $package
  49.                                  * @return void
  50.                                  */
  51.                                 public function calculate_shipping( $package ) {
  52.                                         $rate = array(
  53.                                                 'id' => $this->id,
  54.                                                 'label' => $this->title,
  55.                                                 'cost' => '10.99',
  56.                                                 'calc_tax' => 'per_item'
  57.                                         );

  58.                                         // Register the rate
  59.                                         $this->add_rate( $rate );
  60.                                 }
  61.                         }
  62.                 }
  63.         }

  64.         add_action( 'woocommerce_shipping_init', 'your_shipping_method_init' );

  65.         function add_your_shipping_method( $methods ) {
  66.                 $methods[] = 'WC_Your_Shipping_Method';
  67.                 return $methods;
  68.         }

  69.         add_filter( 'woocommerce_shipping_methods', 'add_your_shipping_method' );
  70. }
  71. ?>
複製代碼


文件來源: http://docs.woothemes.com/document/shipping-method-api/
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

 ㄚ母滴雞湯
 員林香純滴雞精

Archiver|手機版|小黑屋|彰化一整天的論壇(Excel,Office)  

GMT+8, 2020-2-25 12:01 , Processed in 0.135818 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表