当前位置: 首页>>代码示例>>PHP>>正文


PHP WC_Product::get_availability方法代码示例

本文整理汇总了PHP中WC_Product::get_availability方法的典型用法代码示例。如果您正苦于以下问题:PHP WC_Product::get_availability方法的具体用法?PHP WC_Product::get_availability怎么用?PHP WC_Product::get_availability使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在WC_Product的用法示例。


在下文中一共展示了WC_Product::get_availability方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: get_availability

 /**
  * Returns the availability of the product.
  *
  * @return string
  */
 public function get_availability()
 {
     // Default to in-stock
     $availability = __('In stock', 'woocommerce');
     $class = 'in-stock';
     // If out of stock, this takes priority over all other settings.
     if (!$this->is_in_stock()) {
         $availability = __('Out of stock', 'woocommerce');
         $class = 'out-of-stock';
         // Any further we can assume status is set to in stock.
     } elseif ($this->managing_stock() && $this->is_on_backorder(1)) {
         $availability = __('Available on backorder', 'woocommerce');
         $class = 'available-on-backorder';
     } elseif (true === $this->managing_stock()) {
         switch (get_option('woocommerce_stock_format')) {
             case 'no_amount':
                 $availability = __('In stock', 'woocommerce');
                 break;
             case 'low_amount':
                 if ($this->get_stock_quantity() <= get_option('woocommerce_notify_low_stock_amount')) {
                     $availability = sprintf(__('Only %s left in stock', 'woocommerce'), $this->get_stock_quantity());
                     if ($this->backorders_allowed() && $this->backorders_require_notification()) {
                         $availability .= ' ' . __('(also available on backorder)', 'woocommerce');
                     }
                 } else {
                     $availability = __('In stock', 'woocommerce');
                 }
                 break;
             default:
                 $availability = sprintf(__('%s in stock', 'woocommerce'), $this->get_stock_quantity());
                 if ($this->backorders_allowed() && $this->backorders_require_notification()) {
                     $availability .= ' ' . __('(also available on backorder)', 'woocommerce');
                 }
                 break;
         }
     } elseif ('parent' === $this->managing_stock()) {
         return parent::get_availability();
     }
     return apply_filters('woocommerce_get_availability', array('availability' => $availability, 'class' => $class), $this);
 }
开发者ID:coderkevin,项目名称:woocommerce,代码行数:45,代码来源:class-wc-product-variation.php

示例2: get_availability

 /**
  * Availability of bundle based on bundle stock and stock of bundled items.
  * In the admin area, the availability of a bundle is based on the stock of the container, to allow shop admins to restrict sales of a bundle regardless of the bundled items' availability.
  * On the front end, customers need to see whether they can purchase the item or not, so the availability is based on the stock of the container item and the stock of the bundled items.
  * If any bundled item is available on backorder or out of stock, the container item inherits this status and is no longer listed as "in stock" on the front end.
  *
  * @return 	array    availability data array
  */
 public function get_availability()
 {
     $backend_availability_data = parent::get_availability();
     if (!is_admin()) {
         if (!$this->is_synced()) {
             $this->sync_bundle();
         }
         $availability = $class = '';
         if (!$this->all_items_in_stock()) {
             $availability = __('Insufficient stock', 'woocommerce-product-bundles');
             $class = 'out-of-stock';
         } elseif ($this->has_items_on_backorder) {
             $availability = __('Available on backorder', 'woocommerce');
             $class = 'available-on-backorder';
         }
         if ($backend_availability_data['class'] == 'out-of-stock' || $backend_availability_data['class'] == 'available-on-backorder') {
             return $backend_availability_data;
         } elseif ($class == 'out-of-stock' || $class == 'available-on-backorder') {
             return array('availability' => $availability, 'class' => $class);
         }
     }
     return $backend_availability_data;
 }
开发者ID:puppy09,项目名称:madC,代码行数:31,代码来源:class-wc-product-bundle.php

示例3: foreach

 function bundle_availability()
 {
     if (!is_admin()) {
         global $woocommerce_bundles;
         foreach ($this->get_bundled_products() as $bundled_item_id => $bundled_product) {
             $sep = explode('_', $bundled_item_id);
             $id = $sep[0];
             $availability = $bundled_product->get_availability();
             // for both simple & variable items
             if ($availability['class'] == 'out-of-stock') {
                 return array('availability' => $availability['availability'], 'class' => $availability['class']);
             }
             // if any simple item is out of stock, mark bundle as out of stock
             if ($bundled_product->is_type('simple') && !$woocommerce_bundles->validate_stock($id, '', get_post_meta($this->id, 'bundle_quantity_' . $bundled_item_id, true), true, true)) {
                 return array('availability' => __('Out of stock', 'woocommerce'), 'class' => 'out-of-stock');
             } elseif ($bundled_product->is_type('variable')) {
                 $product_in_stock = false;
                 foreach ($bundled_product->get_children() as $variation_id) {
                     // stop here if this variation is not within the active set
                     if ($this->variation_filters_active[$bundled_item_id]) {
                         if (!is_array($this->allowed_variations[$bundled_item_id])) {
                             continue;
                         }
                         if (!in_array($variation_id, $this->allowed_variations[$bundled_item_id])) {
                             continue;
                         }
                     }
                     if (get_post_status($variation_id) != 'publish') {
                         continue;
                     }
                     // Disabled
                     if ($woocommerce_bundles->validate_stock($id, $variation_id, get_post_meta($this->id, 'bundle_quantity_' . $bundled_item_id, true), true, true)) {
                         $product_in_stock = true;
                     }
                 }
                 if (!$product_in_stock) {
                     return array('availability' => __('Out of stock', 'woocommerce'), 'class' => 'out-of-stock');
                 }
             }
         }
     }
     return parent::get_availability();
 }
开发者ID:GarryVeles,项目名称:Artibaltika,代码行数:43,代码来源:class-wc-product-bundle.php

示例4: get_availability

 /**
  * Availability of bundle based on bundle-level stock and bundled-items-level stock.
  *
  * @return 	array    availability data array
  */
 public function get_availability()
 {
     $availability = parent::get_availability();
     if (is_woocommerce()) {
         if (!$this->is_synced()) {
             $this->sync_bundle();
         }
         if (parent::is_in_stock() && !$this->all_items_in_stock()) {
             $availability['availability'] = __('Insufficient stock', 'woocommerce-product-bundles');
         } elseif (parent::is_in_stock() && $this->has_items_on_backorder) {
             $availability['availability'] = __('Available on backorder', 'woocommerce');
             $availability['class'] = 'available-on-backorder';
         }
     }
     return $availability;
 }
开发者ID:alexbaron50,项目名称:Rockk3rs-Lab-Test,代码行数:21,代码来源:class-wc-product-bundle.php

示例5: wc_get_stock_html

/**
 * Get HTML to show product stock.
 * @since  2.7.0
 * @param  WC_Product $product
 * @return string
 */
function wc_get_stock_html($product)
{
    ob_start();
    $availability = $product->get_availability();
    wc_get_template('single-product/stock.php', array('product' => $product, 'class' => $availability['class'], 'availability' => $availability['availability']));
    $html = ob_get_clean();
    if (has_filter('woocommerce_stock_html')) {
        wc_deprecated_function('The woocommerce_stock_html filter', '', 'woocommerce_get_stock_html');
        $html = apply_filters('woocommerce_stock_html', $html, $availability['availability'], $product);
    }
    return apply_filters('woocommerce_get_stock_html', $html, $product);
}
开发者ID:shivapoudel,项目名称:woocommerce,代码行数:18,代码来源:wc-template-functions.php


注:本文中的WC_Product::get_availability方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。