diff --git a/backend/app/plugins/wiaas/includes/class-wiaas-package.php b/backend/app/plugins/wiaas/includes/class-wiaas-package.php index 5c4dea8..137b999 100644 --- a/backend/app/plugins/wiaas/includes/class-wiaas-package.php +++ b/backend/app/plugins/wiaas/includes/class-wiaas-package.php @@ -12,6 +12,7 @@ class Wiaas_Package { require_once dirname( __FILE__ ) . '/package/class-wiaas-package-option-groups.php'; require_once dirname( __FILE__ ) . '/package/class-wiaas-package-type.php'; + require_once dirname( __FILE__ ) . '/package/class-wiaas-package-status.php'; require_once dirname( __FILE__ ) . '/package/wiaas-package-functions.php'; diff --git a/backend/app/plugins/wiaas/includes/package/class-wiaas-package-status.php b/backend/app/plugins/wiaas/includes/package/class-wiaas-package-status.php new file mode 100644 index 0000000..cc1e339 --- /dev/null +++ b/backend/app/plugins/wiaas/includes/package/class-wiaas-package-status.php @@ -0,0 +1,105 @@ + _x( 'Package status', 'taxonomy general name', 'wiaas' ), + 'singular_name' => _x( 'Package status', 'taxonomy singular name', 'wiaas' ), + 'search_items' => __( 'Search Package statuses', 'wiaas' ), + 'all_items' => __( 'All Package statuses', 'wiaas' ), + 'parent_item' => __( 'Parent Package status', 'wiaas' ), + 'parent_item_colon' => __( 'Parent Package status:', 'wiaas' ), + 'edit_item' => __( 'Edit Package status', 'wiaas' ), + 'update_item' => __( 'Update Package status', 'wiaas' ), + 'add_new_item' => __( 'Add New Package status', 'wiaas' ), + 'new_item_name' => __( 'New Package status Name', 'wiaas' ), + 'menu_name' => __( 'Package status', 'wiaas' ), + ); + + $args = array( + 'hierarchical' => false, + 'labels' => $labels, + 'show_ui' => false, + 'show_admin_column' => true, + 'query_var' => true, + 'rewrite' => array( 'slug' => 'package_status' ), + ); + + register_taxonomy( 'package_status', array( 'product' ), $args ); + + + // Register available package statuses + + $statuses = [self::AVAILABLE, self::INVALID_MARGIN, self::INVALID_TEMPLATE]; + + foreach ($statuses as $status) { + wp_insert_term($status, 'package_status'); + } + } + + /** + * Retrieve available wiaas package statuses + * @return array + */ + public static function get_available_package_statuses() { + $statuses = get_terms( array( + 'taxonomy' => 'package_status', + 'hide_empty' => false, + ) ); + + return array_map(function($status) { + return $status->name; + }, $statuses); + } + + /** + * Retrieve package status for provided package id + * @param $package_id + * + * @return null + */ + public static function get_package_status($package_id) { + $terms = wp_get_object_terms($package_id, 'package_status'); + $package_status = isset($terms[0]) ? $terms[0]->name : null; + return $package_status; + } + + /** + * Set package status for provided package id + * @param $package_id + * @param $status + */ + public static function set_package_status($package_id, $status) { + + wp_delete_object_term_relationships( $package_id, 'package_status' ); + + if (isset($status)) { + wp_set_object_terms($package_id, $status, 'package_status', false); + } + } +} + +Wiaas_Package_Status::init(); \ No newline at end of file