在 WordPress /Woocommerce 中将输入数字字段值获取到 PHP 中

问题描述

我尝试在产品页面上制作自定义计算器。我做了一个计算器和脚本来计算。但是现在所有的起始值都是静态的。此计算器应适用于每个产品的自定义值。 我在产品页面添加一个部分,如短代码

function woo_calculator_content() {
      // Калькулятор
       echo ('
    <section>
    <script src="http://door.vel-wild.pro/wp-content/themes/mrDoor/raschet.js"></script>
     <form action="" method="post">
      <div class="vel_sum input-group">   
          <span>Сколько нужно м<sup>2</sup></span>  
          <input type="button" value="-" class="button-minus" data-field="quantity">
          <input class="vel_sum_meter" id="skolkometrov" name="QTY" type="number" step="1" min="1" value="1" oncclick="multiply(this)">
          <input type="button" value="+" class="button-plus" data-field="quantity">
          <input name="PPRICE" value="1.67" style="display: none;">
          <div> <span>Колличество упаковок <input name="TOTAL" readonly class="vel_sum_upakovka"></span>
           <span><input class="vel_sum_upakovkametrov" name="TOTALMETERS" readonly>м<sup>2</sup></span></div>
        </div>
      </form>
    </section>');
    
    } 
    
    add_shortcode( '4cards','woo_calculator_content' );

我试图在我的产品页面自定义字段获取 PHP 中的输入数值。我写了以下代码。但现在我需要从我的自定义字段获取价值并将其添加input name="PPRICE" value"" 值上。 类似这样的

我的自定义字段代码是:

// display Fields
add_action( 'woocommerce_product_options_general_product_data',__NAMESPACE__.'\woo_add_custom_general_fields' );
function woo_add_custom_general_fields() {
    global $woocommerce,$post;
    echo '<div class="options_group">';
    // Number Field
    woocommerce_wp_text_input(
        array(
            'id'                => '_number_field','label'             => __( 'м<sup>2</sup> в упаковке','woocommerce' ),'placeholder'       => '','description'       => __( 'Enter the custom value here.','type'              => 'number','custom_attributes' => array(
                'step'  => 'any','min'   => '0'
            )
        )
    );
?>
<?PHP
    echo '</div>';

}

// Save Fields
add_action( 'woocommerce_process_product_Meta',__NAMESPACE__.'woo_add_custom_general_fields_save' );
function woo_add_custom_general_fields_save( $post_id ){

    // Number Field
    $woocommerce_number_field = $_POST['_number_field'];
    if( !empty( $woocommerce_number_field ) )
        update_post_Meta( $post_id,'_number_field',esc_attr( $woocommerce_number_field ) );
}


    // Вывод описания сколько в упаковке
add_action( 'woocommerce_before_add_to_cart_form','production_time',11 ); 
function production_time() {
    global $product;
    $woocommerce_number_field =$product->get_Meta('_number_field');
    if( has_term( ['laminat'],'product_cat' ) )  {
        echo '<div class="vel_costpack_hide"><p class="ri ri-clock">' . sprintf( __( ' Товар продается упаковками. В упаковке: %s',$woocommerce_number_field,__( 'м<sup>2</sup>','woocommerce' )) . '</p></div>';
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)