コード例 #1
0
ファイル: ListingsTable.php プロジェクト: booklein/wpbookle
 function generateVariationsHtmlLink($item, $profile_data)
 {
     $variations_html = ' ';
     // check for variations
     if (ProductWrapper::hasVariations($item['post_id'])) {
         $variations = $this->getProductVariations($item['post_id']);
         // check variations cache
         $result = ListingsModel::matchCachedVariations($item);
         if ($result && $result->success) {
             $variations = $result->variations;
         }
         // show warning if no variations found
         if (!is_array($variations) || !sizeof($variations)) {
             $img_url = WPLISTER_URL . '/img/error.gif';
             $variations_html .= '(<a href="#" onClick="jQuery(\'#pvars_' . $item['id'] . '\').toggle();return false;">&raquo;' . __('Variations', 'wplister') . '</a>)<!br>';
             $variations_html .= '&nbsp;<img src="' . $img_url . '" style="height:12px; padding:0;"/>&nbsp;<br>';
             $variations_html .= '<b style="color:darkred">No variations found.</b><br>';
             $variations_html .= '<div id="pvars_' . $item['id'] . '" class="variations_list" style="display:none;margin-bottom:10px;">';
             if (!defined('WPLISTER_RESELLER_VERSION')) {
                 $variations_html .= 'Please read the <a href="https://www.wplab.com/plugins/wp-lister/faq/#Variations" target="_blank">FAQ</a> or contact support.';
             }
             $variations_html .= '</div>';
             return $variations_html;
         }
         // get max_quantity from profile
         $max_quantity = isset($profile_data['details']['max_quantity']) && intval($profile_data['details']['max_quantity']) > 0 ? $profile_data['details']['max_quantity'] : PHP_INT_MAX;
         // add Variations link and container
         $variations_html .= '(<a href="#TB_inline?width=600&inlineId=pvars_' . $item['id'] . '" class="thickbox">&raquo;</a>';
         $variations_html .= '<a href="#" onClick="jQuery(\'#pvars_' . $item['id'] . '\').toggle();return false;"> ' . sizeof($variations) . ' ' . __('Variations', 'wplister') . '</a>)<br>';
         $variations_html .= '<div id="pvars_' . $item['id'] . '" class="variations_list" style="display:none;margin-bottom:10px;">';
         // show variation mode message
         if (isset($profile_data['details']['variations_mode']) && $profile_data['details']['variations_mode'] == 'flat') {
             $variations_html .= '<p><b>' . __('These variations will be listed as a single item.', 'wplister') . '</b></p>';
         }
         $variations_html .= '<table class="variations_table" style="margin-bottom: 8px;">';
         // header
         $variations_html .= '<tr><th>';
         $variations_html .= '&nbsp;';
         $variations_html .= '</th><th>';
         $first_variation = reset($variations);
         if (is_array($first_variation['variation_attributes'])) {
             foreach ($first_variation['variation_attributes'] as $name => $value) {
                 $variations_html .= $name;
                 $variations_html .= '</th><th>';
             }
         }
         $variations_html .= __('SKU', 'wplister');
         $variations_html .= '</th><th align="right">';
         $variations_html .= __('Price', 'wplister');
         $variations_html .= '</th></tr>';
         foreach ($variations as $var) {
             // first column: quantity
             $variations_html .= '<tr><td align="right">';
             $variations_html .= min($max_quantity, intval($var['stock'])) . '&nbsp;x';
             $variations_html .= '</td>';
             foreach ($var['variation_attributes'] as $name => $value) {
                 // $variations_html .= $name.': '.$value ;
                 $variations_html .= '<td>';
                 $variations_html .= $value;
                 $variations_html .= '</td>';
             }
             // $variations_html .= '('.$var['sku'].') ';
             // $variations_html .= '('.$var['image'].') ';
             // column: SKU
             $variations_html .= '<td>';
             $variations_html .= $var['sku'] ? $var['sku'] : '<span style="color:darkred">SKU is missing!</span';
             $variations_html .= @$var['is_default'] ? '&nbsp;<span class="tips" data-tip="' . __('Default variation', 'wplister') . '">*</span>' : '';
             $variations_html .= '</td>';
             // last column: price
             $variations_html .= '<td align="right">';
             $price = ListingsModel::applyProfilePrice($var['price'], @$profile_data['details']['start_price']);
             $variations_html .= $this->number_format($price, 2);
             $variations_html .= '</td></tr>';
         }
         $variations_html .= '</table>';
         // show variation mode message
         if (isset($profile_data['details']['variations_mode']) && $profile_data['details']['variations_mode'] == 'flat') {
             // $variations_html .= '<p><b>' . __('These variations will be listed as a single item.','wplister') . '</b></p>';
         } else {
         }
         // list addons
         $addons = ProductWrapper::getAddons($item['post_id']);
         if (sizeof($addons) > 0) {
             $variations_html .= '<table style="margin-bottom: 8px;">';
             foreach ($addons as $addonGroup) {
                 // first column: quantity
                 $variations_html .= '<tr><td colspan="2" align="left"><b>';
                 $variations_html .= $addonGroup->name;
                 $variations_html .= '</b></td></tr>';
                 foreach ($addonGroup->options as $addon) {
                     $variations_html .= '<tr><td align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
                     $variations_html .= $addon->name;
                     $variations_html .= '</td><td align="right">';
                     $variations_html .= $this->number_format($addon->price, 2);
                     $variations_html .= '</td></tr>';
                 }
             }
             $variations_html .= '</table>';
         }
         $variations_html .= '</div>';
     }
     return $variations_html;
 }