我真的是WordPress的新手,所以如果我没有提供足够的资源,请告诉我。我正在尝试实现一些简单的事情。在woocommerce / wp上的内部产品中,您可以具有产品变体,例如:https://i.gyazo.com/f9e99075152f3abcfb02614995724c63.png
我要实现的目标:我需要在其中添加一个新的文本框,以显示“成本价”。常规价格和销售价格已经存在一种。我不知道如何添加它,因此通过搜索脚本/阅读woo Commerce文档,我设法通过编辑html-variation-admin.php
并添加以下代码在前面添加了文本框:
woocommerce_wp_text_input(
array(
'id' => "variable_cost_price{$loop}",
'name' => "variable_cost_price[{$loop}]",
'value' => wc_format_localized_price( $variation_object->get_cost_price( 'edit' ) ),
'data_type' => 'price',
'label' => $label ,
'wrapper_class' => 'form-row form-row-last',
)
);
我知道这是可行的,因为我是从“常规价格”上方的文本框中复制它的。
我的问题:当然,如果文本框没有保存到数据库并带回要在页面加载时显示的数据,那毫无意义。再次不是100%肯定,但是通过研究,我认为我必须补充一些内容。
我尝试过的操作:我已经将方法get_cost_price
添加到class-wc-ajax.php
脚本中,因为我已经看到其中的一种用于get_regular_price的方法。我还看到了class-wc-meta-box-product-data.php
中的行,这些行引用了regular_price,因此我为新的cost_price添加了一个条目,请参见以下内容(添加了cost_price行):
$errors = $variation->set_props(
array(
'status' => isset( $_POST['variable_enabled'][ $i ] ) ? 'publish' : 'private',
'menu_order' => wc_clean( $_POST['variation_menu_order'][ $i ] ),
'regular_price' => wc_clean( $_POST['variable_regular_price'][ $i ] ),
'sale_price' => wc_clean( $_POST['variable_sale_price'][ $i ] ),
'cost_price' => wc_clean( $_POST['variable_code_price'][ $i ] ),
.. more code here..
我错过了什么,我是否需要在另一个脚本中进行更改?再次显示文本框,但输入数据并单击“保存更改”实际上似乎并未向postmeta
表添加任何内容
编辑:我不需要在前端网站上显示此信息,这纯粹是供我存储后端数据