2017-05-18 1 views
6

Je veux ajouter un champ personnalisé dans la page Zone de livraison sous la méthode d'expédition, ce sera une entrée de texte, l'utilisateur sera en mesure d'ajouter un message personnalisé et je vais montrer ce message à l'avant.Comment ajouter Champ de description personnalisée dans les méthodes d'expédition (Backend)

J'ai noté qu'il enregistre les données dans wp_woocommerce_shipping_zone_methods qui n'ont aucune colonne supplémentaire pour enregistrer les données; donc je pense que je dois utiliser ma logique personnalisée, mais je ne connais pas le nom de hook (s).

Donc ma question est, est-il est un hameçon qui aidera/me permettre

  1. Pour ajouter un champ personnalisé.
  2. Pour ajouter une colonne personnalisée.

TL; DR: enter image description here

enter image description here

+0

Le tableau que vous voyez est un mélange de HTML dans '' th' et tfoot' alors que les données sont rempli en utilisant des modèles inspirés Mustache Underscore.js. Vous pouvez regarder '\ includes \ admin \ settings \ views \ html-admin-page-shipping-zone-methods.php' pour plus de détails. –

+0

Le modèle des paramètres de la méthode d'expédition est également basé sur le modèle Underscore.js. Donc, pour modifier la vue et traiter les données saisies, vous devez utiliser JS personnalisé. Pour stocker/récupérer la partie de données, vous pouvez le faire en utilisant les paramètres de base API et les enregistrer dans les options. Pour afficher le même sur frontend, vous devez utiliser des crochets dans chaque modèle de WC. –

Répondre

0

Vers la fin du temps, mais vous pouvez utiliser:

add_action('woocommerce_product_options_general_product_data', 'my_custom_fields'); 

function my_custom_fields() { 
    $field = array(
     //This ID will be use on the _postmeta table as key_name 
     'id' => 'my_custom_message', 
     //Text that goes inside the label tag 
     'label' => 'Message:', 
     //This text will appear on the description column 
     'description' => 'This is a custom message not part of WooCommerce', 
     //Boolean that determines the display of the description 
     'desc_tip' => true, 
     //Standard html input placeholder 
     'placeholder' => 'Type a message', 
    ); 
    woocommerce_wp_text_input($field); 
} 

add_action('woocommerce_process_product_meta', 'save_my_custom_fields'); 

function save_my_custom_fields($post_id) { 
    update_post_meta(
     $post_id, 
     'my_custom_message', 
     esc_attr($POST['my_custom_message']) 
    ); 
} 

tableau du champ $ à mon avis, doit avoir au minimum:

$field = array(
    'id' => 'my_custom_message',//This ID will be use on the _postmeta table as key_name 
    'label' => 'Message:',//Text that goes inside the label tag 
    'description' => 'This is a custom message not part of WooCommerce',//This text will appear on the description column 
    'desc_tip' => true,//Boolean that determines the display of the description 
    'placeholder' => 'Type a message',//Standard html input placeholder 
); 

Vous pouvez également spécifier les éléments suivants:

'class' => 'css-class',//Class attributte for the input tag 
    'style' => 'background:red',//Style attribute for the input tag 
    'wrapper_class' => 'css-class',//Class for the wrapper of the input tag, it is a paragraph