在Wordpress中编辑现有的WooCommerce元框

时间:2012-10-29 13:38:13

标签: php wordpress-plugin wordpress woocommerce

我正在尝试编辑Wordpress中插件(WooCommerce)添加的现有元框,但我不知道如何执行此操作。

使用以下行添加元框:

add_meta_box( 'woocommerce-product-data', __('Product Data', 'woocommerce'), 'woocommerce_product_data_box', 'product', 'normal', 'high' );

...所以输出HTML到屏幕的功能是woocommerce_product_data_box()。有没有办法编辑这个功能而不会丢失它?我只想删除部分内容而不编辑原始功能。

我可以用过滤器以某种方式完成此操作吗?还是其他任何想法?

谢谢!

1 个答案:

答案 0 :(得分:6)

您可以在writepanel-product_data.php文件中找到为其编写元框的实际函数。在第24行:

function woocommerce_product_data_box()

列出了产品数据中的所有内容。您可以使用WooCommerce API添加文本框或下拉列表。找到您要添加或删除的地点,然后 -

对于文本字段 -

woocommerce_wp_text_input( array( 'id' => 'YOURCUSTOMID', 'class' => '', 'label' => __('THELABELOFTHEFIELD', 'woocommerce') ) );

下拉 -

woocommerce_wp_select( array( 'id' => 'YOURCUSTOMID', 'label' => __('THELABELOFTHEFIELD', 'woocommerce'), 'options' => array(
            'OPTION1' => __('Option 1', 'woocommerce'),
            'OPTION2' => __('Option 2', 'woocommerce'),
            'OPTION3' => __('Option 3', 'woocommerce'),
            'OPTION4' => __('Option 4', 'woocommerce'),
            'OPTION5' => __('Option 5', 'woocommerce')
            ) ) );

因此,您为输入提供了一个ID YOURCUSTOMID ,然后将其标记为您希望管理员在填写字段时看到的内容, THELABELOFTHEFIELD

与Wordpress帖子/页面中的自定义元框相同,您仍然需要保存它。在第600行附近找到函数woocommerce_process_product_meta()。上面的注释将告诉您它正在保存元框数据。然后,插入一行代码以保存刚刚收集的自定义ID -

 update_post_meta( $post_id, 'YOURCUSTOMID', stripslashes( $_POST['YOURCUSTOMID'] ) );

并为您自定义ID更改它。只需确保在声明global之后将该行代码放在任何位置。

当然,要删除字段,您只需注释掉您不希望在这两个函数中收集的字段。

希望有所帮助。