PluginProbe ʕ •ᴥ•ʔ
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping / 6.11.0
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping v6.11.0
6.12.1 6.12.0 6.11.0 6.10.0 6.9.1 6.9.0 6.8.1 6.8.0 6.7.4 6.7.3 6.7.2 6.7.0 4.21.7 4.22.0 4.22.1 4.23.0 4.23.1 4.23.2 4.23.3 4.24.0 4.24.1 4.24.10 4.24.11 4.24.12 4.24.13 4.24.14 4.24.15 4.24.16 4.24.17 4.24.18 4.24.19 4.24.2 4.24.4 4.24.6 4.24.7 4.24.8 4.24.9 4.25.0 4.25.1 4.25.2 4.25.4 4.25.5 4.25.6 4.25.7 4.25.8 4.3.0 4.3.1 4.4.0 4.4.1 4.5.0 4.5.1 4.6.0 4.6.1 4.7.0 4.7.1 4.7.2 4.8.0 4.8.1 4.8.3 4.8.4 4.8.5 4.9.0 5.0.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.0.9 5.1.0 5.1.1 5.1.2 5.1.3 5.2.0 5.3.0 5.3.1 5.3.3 5.3.4 5.3.5 6.0.0 6.1.0 6.1.1 6.1.2 6.2.0 6.2.1 6.2.2 6.2.3 6.2.4 6.3.0 trunk 6.4.0 1.4 6.4.1 1.4.1 6.4.2 1.5 6.4.3 1.6 6.4.5 1.6.1 6.5.0 1.6.2 6.5.1 1.7 6.5.2 1.8 6.5.3 1.9 6.5.4 1.9.1 6.5.5 1.9.10 6.5.6 1.9.11 6.5.7 1.9.12 6.5.8 1.9.2 6.6.0 1.9.3 6.6.1 1.9.4 6.6.2 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0 2.0.1 2.1 2.1.1 2.1.10 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.6 3.0.7 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.10.0 3.11.0 3.11.1 3.11.2 3.11.3 3.11.4 3.12.0 3.13.0 3.14.0 3.14.1 3.14.2 3.14.3 3.14.4 3.15.0 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.2.0 3.3.1 3.3.10 3.3.11 3.3.12 3.3.13 3.3.14 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9 3.4.0 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.7.0 3.8.0 3.9.0 3.9.1 3.9.10 3.9.11 3.9.12 3.9.13 3.9.15 3.9.16 3.9.17 3.9.18 3.9.19 3.9.2 3.9.20 3.9.21 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.9 4.0.0 4.0.1 4.0.10 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.0.9 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.11.0 4.11.1 4.11.2 4.11.3 4.11.4 4.11.5 4.11.6 4.11.7 4.11.8 4.11.9 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.14.0 4.14.1 4.14.2 4.15.0 4.16.0 4.16.1 4.16.2 4.17.0 4.18.0 4.18.1 4.18.2 4.18.3 4.18.4 4.18.5 4.18.6 4.19.0 4.19.1 4.2.0 4.20.0 4.20.1 4.20.2 4.20.3 4.21.0 4.21.1 4.21.2 4.21.3 4.21.4 4.21.5
flexible-shipping / src / WPDesk / FS / TableRate / ImporterExporter / ShippingClassTrait.php
flexible-shipping / src / WPDesk / FS / TableRate / ImporterExporter Last commit date
Exporter 1 week ago Importer 1 week ago Exporter.php 1 week ago ExporterData.php 1 week ago ImporterData.php 1 week ago ShippingClassTrait.php 1 week ago
ShippingClassTrait.php
91 lines
1 <?php
2 /**
3 * Trait ImporterExporter
4 *
5 * @package WPDesk\FS\TableRate\ImporterExporter
6 */
7
8 namespace WPDesk\FS\TableRate\ImporterExporter;
9
10 use stdClass;
11 use WPDesk\FS\TableRate\ImporterExporter\Importer\Exception\ImportCSVException;
12
13 /**
14 * Trait ShippingClassTrait
15 *
16 * @package WPDesk\FS\TableRate\ImporterExporter
17 */
18 trait ShippingClassTrait {
19 /**
20 * Hashmap for shipping classes with name->term_id data.
21 *
22 * @var stdClass[]
23 */
24 public $wc_shipping_classes_hashmap;
25
26 /**
27 * Init action.
28 */
29 public function init_shipping_class() {
30 $this->wc_shipping_classes_hashmap = $this->prepare_shipping_class_hashmap();
31 }
32
33 /**
34 * Prepares hashmap for fast checking the term_id of given shipment class.
35 *
36 * @return array
37 */
38 public function prepare_shipping_class_hashmap() {
39 $shipping_classes = array();
40
41 foreach ( WC()->shipping()->get_shipping_classes() as $class ) {
42 $shipping_classes[ html_entity_decode( $class->name ) ] = (int) $class->term_id;
43 }
44
45 return $shipping_classes;
46 }
47
48 /**
49 * Find and returns shipping class term id
50 *
51 * @param string $name Shipping class name to search.
52 *
53 * @return int|null Term id
54 */
55 public function find_shipping_class_by_name( $name ) {
56 $name = html_entity_decode( $name );
57 if ( isset( $this->wc_shipping_classes_hashmap[ $name ] ) ) {
58 return (int) $this->wc_shipping_classes_hashmap[ $name ];
59 }
60
61 return null;
62 }
63
64 /**
65 * Creates a shipping class
66 *
67 * @param string $name Shipping class name.
68 * @param string $description Shipping class description.
69 *
70 * @return int Term id
71 * @throws ImportCSVException When can't create the class.
72 */
73 public function create_shipping_class( $name, $description ) {
74 $term_id = wp_insert_term( $name, 'product_shipping_class', array( 'description' => $description ) );
75 if ( is_wp_error( $term_id ) ) {
76 throw new ImportCSVException(
77 sprintf(
78 // Translators: rule shipping class and wp_error message.
79 __( 'Error while creating shipping class: %1$s, %2$s', 'flexible-shipping' ),
80 $name,
81 $term_id->get_error_message()
82 )
83 );
84 }
85 $term_id = (int) $term_id['term_id'];
86 $this->wc_shipping_classes_hashmap[ html_entity_decode( $name ) ] = $term_id;
87
88 return $term_id;
89 }
90 }
91