jam*_*lin 2 php wordpress wordpress-plugin woocommerce
我正在尝试编辑由WordPress中的插件(WooCommerce)添加的现有元框,但我不知道如何执行此操作.
元行添加了以下行:
add_meta_box( 'woocommerce-product-data', __('Product Data', 'woocommerce'), 'woocommerce_product_data_box', 'product', 'normal', 'high' );
Run Code Online (Sandbox Code Playgroud)
...所以将HTML输出到屏幕的功能是woocommerce_product_data_box().有没有办法编辑这个功能而不会丢失它?我只想删除它的一部分而不编辑原始功能.
我能以某种方式用过滤器完成这个吗?还是其他任何想法?
谢谢!
您可以在writepanel-product_data.php文件中找到为其编写元框的实际函数.在第24行:
function woocommerce_product_data_box()
Run Code Online (Sandbox Code Playgroud)
这列出了产品数据中的所有内容.您可以使用WooCommerce API添加文本框或下拉列表.找到您要添加或删除的地点,然后 -
对于文本字段 -
woocommerce_wp_text_input( array( 'id' => 'YOURCUSTOMID', 'class' => '', 'label' => __('THELABELOFTHEFIELD', 'woocommerce') ) );
Run Code Online (Sandbox Code Playgroud)
下拉菜单 -
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')
) ) );
Run Code Online (Sandbox Code Playgroud)
因此,您为输入提供ID,YOURCUSTOMID,然后将其标记为管理员在填写字段THELABELOFTHEFIELD时要查看的内容.
与Wordpress帖子/页面中的自定义元框相同,您仍然需要保存它.woocommerce_process_product_meta()在第600行附近找到函数.上面的注释将告诉您它正在保存元框数据.然后,插入一行代码以保存您刚刚收集的任何自定义ID -
update_post_meta( $post_id, 'YOURCUSTOMID', stripslashes( $_POST['YOURCUSTOMID'] ) );
Run Code Online (Sandbox Code Playgroud)
并为您自定义ID更改它.只需确保global在声明s 之后将该行代码放在任何位置.
当然,对于删除字段,您只需注释掉您不希望在这两个函数中收集的字段.
希望有所帮助.
| 归档时间: |
|
| 查看次数: |
4338 次 |
| 最近记录: |