cdelphi78

PHP Fields

Mar 8th, 2020
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.31 KB | None | 0 0
  1. // Создание произвольного поля WC в вариациях товара
  2.  
  3. add_action( 'woocommerce_product_after_variable_attributes', 'num_cubicmeters_fields', 10, 3 );
  4. function num_cubicmeters_fields( $loop, $variation_data, $variation ) {
  5.     woocommerce_wp_text_input( array(
  6.         'id'                => '_num_cubic_var[' . $variation->ID . ']', // id поля
  7.         'label'             => 'Количество кубометров', // Надпись над полем
  8.         'description'       => 'Укажи количество кубометров',// Описание поля
  9.         'desc_tip'          => 'true', // Всплывающая подсказка
  10.         'placeholder'       => 'Количество кубометров, м3', // Надпись внутри поля
  11.         'type'              => 'number', // Тип поля
  12.         'custom_attributes' => array( // Произвольные аттрибуты
  13.             'step' => 'any', // Шаг значений
  14.             'min'  => '0', // Минимальное значение
  15.         ),
  16.         'value'             => get_post_meta( $variation->ID, '_num_cubic_var', true ),
  17.     ) );
  18. }
  19.  
  20. add_action( 'woocommerce_save_product_variation', 'art_save_variation_settings_fields', 10, 2 );
  21. function art_save_variation_settings_fields( $post_id ) {
  22.     $woocommerce__num_cubic_var = $_POST['_num_cubic_var'][ $post_id ];
  23.     if (isset($woocommerce__num_cubic_var) && ! empty( $woocommerce__num_cubic_var ) ) {
  24.         update_post_meta( $post_id, '_num_cubic_var', esc_attr( $woocommerce__num_cubic_var ) );
  25.     }
  26. }
  27.  
  28. add_filter( 'woocommerce_available_variation', 'load_variation_settings_fields' );
  29. function load_variation_settings_fields( $variations ) {
  30.     $variations_num_cubic = get_post_meta( $variations['variation_id'], '_num_cubic_var', true );
  31.     if ( isset( $variations_num_cubic ) && ! empty( $variations_num_cubic ) ) {
  32.         $variations['_num_cubic_var'] = '<div class="num-cubicmeters-prod">';
  33.         $variations['_num_cubic_var'] .= '<span>Количество Кубометров</span>';
  34.         $variations['_num_cubic_var'] .= get_post_meta( $variations['variation_id'], '_num_cubic_var', true ) . ' м3';
  35.         $variations['_num_cubic_var'] .= '</div>';
  36.     }
  37.  
  38.     return $variations;
  39. }
Add Comment
Please, Sign In to add comment