2017-10-14 103 views
0

我使用的代碼從這些帖子(12)來創建自定義的股票期權:自股票期權批量編輯不露面(Woocommerce 3.2.1)

function add_custom_stock_type() { 
?> 
<script type="text/javascript"> 
jQuery(function(){ 
    jQuery('._stock_status_field').not('.custom-stock-status').remove(); 
}); 
</script> 
<?php 

woocommerce_wp_select(array('id' => '_stock_status', 'wrapper_class' => 
'hide_if_variable custom-stock-status', 'label' => __('Stock status', 
'woocommerce'), 'options' => array(
    'instock' => __('In stock', 'woocommerce'), 
    'outofstock' => __('Out of stock', 'woocommerce'), 
    '1to3' => __('Διαθέσιμο! Παράδοση σε: 1-3 ημέρες', 'woocommerce'), 
    '3to5' => __('Διαθέσιμο! Παράδοση σε: 3-5 ημέρες', 'woocommerce'), 
    '7to10' => __('Διαθέσιμο! Παράδοση σε: 7-10 ημέρες', 'woocommerce'), 
    'onrequest' => __('Διαθέσιμο κατόπιν παραγγελίας', 'woocommerce'),// 
    The new option !!! 
), 'desc_tip' => true, 'description' => __('Controls whether or not the 
product is listed as "in stock" or "out of stock" on the frontend.', 
'woocommerce'))); 
} 
add_action('woocommerce_product_options_stock_status', 
'add_custom_stock_type'); 



function save_custom_stock_status($product_id) { 
update_post_meta($product_id, '_stock_status', wc_clean( 
$_POST['_stock_status'])); 
} 
add_action('woocommerce_process_product_meta', 
'save_custom_stock_status',99,1); 



function woocommerce_get_custom_availability($data, $product) { 
$stock_status = get_post_meta($product->id , '_stock_status' , true); 
switch($stock_status ) { 
    case 'instock': 
     $data = array('availability' => __('In stock', 'woocommerce'), 
'class' => 'in-stock'); 
    break; 
    case 'outofstock': 
     $data = array('availability' => __('Out of stock', 'woocommerce' 
), 'class' => 'out-of-stock'); 
    break; 
    case '1to3': 
     $data = array('availability' => __('Διαθέσιμο! Παράδοση σε: 1-3 
ημέρες', 'woocommerce'), 'class' => '1to3'); 
    break; 
    case '3to5': 
     $data = array('availability' => __('Διαθέσιμο! Παράδοση σε: 3-5 
ημέρες', 'woocommerce'), 'class' => '3to5'); 
    break; 
    case '7to10': 
     $data = array('availability' => __('Διαθέσιμο! Παράδοση σε: 7-10 
ημέρες', 'woocommerce'), 'class' => '7to10'); 
    break; 
    case 'onrequest': 
     $data = array('availability' => __('Διαθέσιμο κατόπιν 
παραγγελίας', 'woocommerce'), 'class' => 'on-request'); 
    break; 
} 
return $data; 
} 
add_action('woocommerce_get_availability', 
'woocommerce_get_custom_availability', 10, 2); 

新的股票期權露面在單個產品編輯頁面中正確顯示,但當我嘗試批量編輯某些產品時,它們不會顯示。僅顯示「有庫存」和「缺貨」選項。

產品頁面: Product page

批量編輯: Bulk Edit

我怎麼能批量使用新的自定義股票期權編輯的產品?編輯一個接一個的產品有點令人沮喪。

回答

0

是的,這是可能的,我已經做到了這一點,下面的代碼保存示例自定義字段。

/** 
* Add a custom column to WooCommerce products quick edit. 
* 
*/ 
function es_display_custom_quickedit_product() { 
    ?> 
    <br class="clear" /> 
    <h4>Custom Fields</h4> 
    <label> 
     <span class="title"><?php _e('Member Price', 'woocommerce'); ?></span> 
     <span class="input-text-wrap"> 
      <input type="text" name="member_price" class="text wc_input_price" value=""> 
     </span> 
    </label> 
    <br class="clear" /> 
    <?php 
} 

add_action('woocommerce_product_quick_edit_end', 'es_display_custom_quickedit_product'); 

/** 
* Save the quick edit custom WooCommerce fields 
* 
*/ 
function es_save_custom_quickedit_product($product) { 
    if (isset($_REQUEST['member_price']) AND ! empty($_REQUEST['member_price'])) { 
     update_post_meta($product->id, 'member_price', wc_clean($_REQUEST['member_price'])); 
    } 
    else 
     delete_post_meta($product->id, 'member_price'); 
} 

add_action('woocommerce_product_quick_edit_save', 'es_save_custom_quickedit_product'); 
+0

此代碼在單個產品快速編輯中添加了自定義編輯選項。我想一起批量編輯5-6個產品(不是一個一個),但我之前提供的自定義股票選項不在那裏。它們只存在於單個產品編輯頁面中。 –