我正在尝试编辑由Wordpress中的插件(WooCommerce)添加的现有元框,但是我不知道该怎么做。
元框添加以下行:
add_meta_box( 'woocommerce-product-data', __('Product Data', 'woocommerce'), 'woocommerce_product_data_box', 'product', 'normal', 'high' );
...因此将HTML输出到屏幕的函数是
woocommerce_product_data_box()
。有什么方法可以编辑而不失去全部功能吗?我只想删除其中的一部分,而无需编辑原始功能。我可以用过滤器以某种方式完成此操作吗?还是其他想法?
谢谢!
最佳答案
您可以在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
之后将代码行放在任何地方即可。自然地,对于删除字段,您只需注释掉不想在这两个函数中收集的字段。
希望有帮助。
关于php - 在Wordpress中编辑现有的WooCommerce元框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13122742/