File "class-services.php"
Full Path: /home/romayxjt/public_html/wp-content/plugins/orderable/inc/modules/services/class-services.php
File size: 2.5 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Module: Services.
*
* Delivery/pickup services.
*
* @package Orderable/Classes
*/
defined( 'ABSPATH' ) || exit;
/**
* Services module class.
*/
class Orderable_Services {
/**
* Init.
*/
public static function run() {
self::load_classes();
}
/**
* Load classes for this module.
*/
public static function load_classes() {
$classes = array(
'services-order' => 'Orderable_Services_Order',
);
foreach ( $classes as $file_name => $class_name ) {
require_once ORDERABLE_MODULES_PATH . 'services/class-' . $file_name . '.php';
$class_name::run();
}
}
/**
* Is pickup method?
*
* @param string|WC_Shipping_Method $shipping_method
*
* @return bool
*/
public static function is_pickup_method( $shipping_method ) {
if ( ! $shipping_method ) {
return false;
}
if ( is_numeric( $shipping_method ) ) {
$shipping_method = Orderable_Location_Zones::get_method_id( $shipping_method );
}
if ( ! $shipping_method ) {
return false;
}
if ( ! is_string( $shipping_method ) ) {
$shipping_method = $shipping_method->get_method_id();
}
$explode = explode( ':', $shipping_method );
return false !== strpos( $explode[0], 'pickup' );
}
/**
* Get selected service.
*
* @param bool $label Return the label?
*
* @return bool|WC_Shipping_Method
*/
public static function get_selected_service( $label = true ) {
if ( empty( WC()->session ) ) {
return false;
}
$chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
if ( empty( $chosen_methods[0] ) ) {
return false;
}
$chosen_method = $chosen_methods[0];
$is_pickup = self::is_pickup_method( $chosen_method );
$type = $is_pickup ? 'pickup' : 'delivery';
if ( ! $label ) {
return $type;
}
return self::get_service_label( $type );
}
/**
* Get service label.
*
* @param string $type pickup|delivery
* @param bool $plural Return the plural label?
*
* @return bool|string
*/
public static function get_service_label( $type, $plural = false ) {
if ( empty( $type ) ) {
return false;
}
$type = $plural ? $type . '_plural' : $type;
$labels = apply_filters(
'orderable_service_labels',
array(
'pickup' => __( 'Pickup', 'orderable' ),
'delivery' => __( 'Delivery', 'orderable' ),
'pickup_plural' => __( 'Pickups', 'orderable' ),
'delivery_plural' => __( 'Deliveries', 'orderable' ),
)
);
if ( ! isset( $labels[ $type ] ) ) {
return false;
}
return $labels[ $type ];
}
}