Woocommerce-向产品页面添加简单的文本框

时间:2019-05-02 11:21:06

标签: php wordpress woocommerce

我真的是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表添加任何内容

编辑:我不需要在前端网站上显示此信息,这纯粹是供我存储后端数据

0 个答案:

没有答案