通过functions.php添加自定义字段

时间:2019-07-02 00:18:13

标签: php wordpress woocommerce wordpress-theming hook-woocommerce

我正在尝试在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 :(得分:0)

在您的主题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>";
  }
}