Добавление настраиваемого поля через functions.php - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь добавить настраиваемое поле чуть ниже цены в моей теме Woocommerce.Я смог добавить простой HTML, используя:

add_action( 'woocommerce_before_add_to_cart_form', 'SomeName' );

function SomeName() {

echo '<p>Some Text Here</p>';

}

Но я хочу вместо этого добавить ключ настраиваемого поля.Я использую этот код для размещения пользовательских полей:

<?php 

$naslov = get_post_meta($post->ID, 'Naslov', true);

if ($naslov) { ?>

<h2 class="single-naslov-kat"><? echo $naslov; ?></h2>

<?php 

} else { 
// do nothing; 
}

?>

Код прекрасно работает, когда я добавляю его в файл темы content-single-product.php.Но я не могу добавить его ниже цены через этот файл.И я понятия не имею, как включить это через functions.php.

Если у вас есть какие-либо другие предложения о том, как я мог бы добавить собственный текст ниже цены для каждого конкретного продукта, который тоже подходит.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 02 июля 2019

В ваших темах functions.php добавьте код,

//create custom field
function cfwc_create_custom_field() {
  $args = array(
    'id' => 'custom_field',
    'label' => __( 'Custom Field', 'cfwc' ),
    'class' => 'cfwc-custom-field',
    'desc_tip' => true,
    'description' => __( 'Enter Custom Field Description.', 'ctwc' ),
  );
  woocommerce_wp_text_input( $args );
}
add_action( 'woocommerce_product_options_general_product_data', 'cfwc_create_custom_field' );

// save custom field
function cfwc_save_custom_field( $post_id ) {
  $link = wc_get_product( $post_id );
  $title = isset( $_POST['custom_field'] ) ? $_POST['custom_field'] : '';
  $link->update_meta_data( 'custom_field', sanitize_text_field( $title ) );
  $link->save();
}
add_action( 'woocommerce_process_product_meta', 'cfwc_save_custom_field' );



// display custom field in single.php page
add_action('woocommerce_before_add_to_cart_form','cmk_additional_button');
function cmk_additional_button() {
  global $product;
  $custom_field = $product->get_meta('custom_field');
  if(!empty($custom_field)) {
    echo "<a href='$custom_field' target='_blank'><button type='button' class='button alt'>Custom Field</button></a>";
  }
}
...