2017-07-20 87 views
2

我正在構建Wordpress/WooCommerce網站,我想將自定義帖子類型附加到WooCommerce變體。例如。自定義帖子類型是「紙張厚度」,我希望能夠從產品的WooCommerce版本的下拉列表中選擇紙張厚度。作爲WooCommerce變體添加自定義帖子類型的帖子

這將位於產品編輯頁面,因此在前端,它將根據所選的自定義帖子顯示與變體相關的詳細信息。

有沒有辦法做到這一點有或沒有插件?

任何幫助將不勝感激!

+0

我很好奇,爲什麼?因爲,在最後,這取決於你將如何編寫它,它不會是有用的。我說,你的問題不清楚。我能想到做這件事的方式有很多,但哪個取決於你爲什麼要這樣做。 – Reigel

+0

@Reigel,道歉,讓我試試澄清;我希望客戶能夠爲變體設置一定數量的選擇,所以我認爲我可以將其設置爲自定義帖子類型。如果有一種方法可以爲變體定義設置選項,那麼這也足夠了。 – PavKR

回答

0

更新時間:

這裏是一個自定義下拉選擇添加到現有的變化的解決方案。
您可以如您所願,選擇您的自定義職位類型「紙張厚度」任何產品的變化選項...這是你會得到什麼:

enter image description here

下面是相關的代碼即:

// Add custom dropdown selector to existing variation settings 
add_action('woocommerce_variation_options_pricing','add_cp_option_to_variations',20 ,3); 
function add_cp_option_to_variations($loop, $variation_data, $variation){ 

    // HERE define your options array (or add some code to get the array dynamically) 
    $options = array(
     ''   => __('Choose a value…', 'woocommerce'), // default 
     'option1' => __('Option 1', 'woocommerce'), 
     'option2' => __('Option 2', 'woocommerce'), 
     'option3' => __('Option 3', 'woocommerce') 
    ); 

    woocommerce_wp_select(array(
     'id'   => "select_paper_thickness_$loop", 
     'label'  => __('Paper Thickness options: <br>', 'woocommerce'), 
     'value'  => get_post_meta($variation->ID, '_paper_thickness_option', true), 
     'options' => $options, 
    )); 
} 

//Save Variation checkbox custom field 
add_action('woocommerce_save_product_variation','save_cp_option_to_variations', 10 ,2); 
function save_cp_option_to_variations($variation_id, $loop){ 

    $selected_option = $_POST["select_paper_thickness_$loop"]; 
    if(! empty($selected_option)) 
     update_post_meta($variation_id, '_paper_thickness_option', esc_attr($selected_option)); 
} 

代碼放在您的活動子主題(或主題)的function.php文件或也以任何插件文件。

該代碼測試和工程

+0

感謝@LoicTheAztec的迴應,但它不完全是我的dillema - 我想添加一個下拉(選擇)字段,將自定義帖子類型的項目顯示爲變體集,而不僅僅啓用自定義選項複選框。 – PavKR

+0

@PavKR我已經更新了我的答案...你現在得到一個下拉選擇器。但是您需要自定義代碼才能動態獲取正確的選項。 – LoicTheAztec

相關問題