/** * Adds "RRP" input field. * * @see https://wpcodebook.com/snippets/add-settings-to-woocommerce-product-data-meta-box/ * @see https://github.com/woocommerce/woocommerce/blob/7.9.0/plugins/woocommerce/includes/admin/meta-boxes/views/html-product-data-general.php#L73 */ add_action( 'woocommerce_product_options_pricing', function () { global $product_object; woocommerce_wp_text_input( array( 'id' => 'rrp', 'value' => $product_object->get_meta( 'rrp', true, 'edit' ), 'label' => __( 'RRP' ) . ' (' . get_woocommerce_currency_symbol() . ')', 'data_type' => 'price', ) ); } ); /** * Saves "RRP" meta. * * @see https://wpcodebook.com/snippets/add-settings-to-woocommerce-product-data-meta-box/ * @see https://github.com/woocommerce/woocommerce/blob/7.9.0/plugins/woocommerce/includes/admin/meta-boxes/class-wc-meta-box-product-data.php#L422 */ add_action( 'woocommerce_admin_process_product_object', function ( $product ) { if ( isset( $_POST['rrp'] ) ) { $product->update_meta_data( 'rrp', wc_clean( wp_unslash( $_POST['rrp'] ) ) ); } } );
Similar actions to replace the woocommerce_product_options_pricing
action in the snippet:
// General woocommerce_product_options_external woocommerce_product_options_pricing woocommerce_product_options_downloads woocommerce_product_options_tax woocommerce_product_options_general_product_data // Inventory woocommerce_product_options_sku woocommerce_product_options_stock woocommerce_product_options_stock_fields woocommerce_product_options_stock_status woocommerce_product_options_sold_individually woocommerce_product_options_inventory_product_data // Shipping woocommerce_product_options_dimensions woocommerce_product_options_shipping woocommerce_product_options_shipping_product_data // Linked Products woocommerce_product_options_related // Attributes woocommerce_product_options_attributes // Advanced woocommerce_product_options_reviews woocommerce_product_options_advanced
Variations
/** * Adds variation "RRP" input field. * * @see https://wpcodebook.com/snippets/add-settings-to-woocommerce-product-data-meta-box/ * @see https://github.com/woocommerce/woocommerce/blob/8.2.1/plugins/woocommerce/includes/admin/meta-boxes/views/html-variation-admin.php#L185 */ add_action( 'woocommerce_variation_options_pricing', function ( $loop, $variation_data, $variation ) { $variation_object = wc_get_product( $variation->ID ); woocommerce_wp_text_input( array( 'id' => "variable_rrp{$loop}", 'name' => "variable_rrp[{$loop}]", 'value' => $variation_object->get_meta( 'rrp', true, 'edit' ), 'label' => __( 'RRP' ) . ' (' . get_woocommerce_currency_symbol() . ')', 'desc_tip' => true, 'description' => __( 'Recommended retail price.' ), 'data_type' => 'price', 'wrapper_class' => 'form-row form-row-full', ) ); }, 10, 3 ); /** * Saves variation "RRP" meta. * * @see https://wpcodebook.com/snippets/add-settings-to-woocommerce-product-data-meta-box/ * @see https://github.com/woocommerce/woocommerce/blob/8.2.1/plugins/woocommerce/includes/admin/meta-boxes/class-wc-meta-box-product-data.php#L564 */ add_action( 'woocommerce_admin_process_variation_object', function ( $variation, $loop ) { if ( isset( $_POST['variable_rrp'][ $loop ] ) ) { $variation->update_meta_data( 'rrp', wc_clean( wp_unslash( $_POST['variable_rrp'][ $loop ] ) ) ); } }, 10, 2 );
Similar actions to replace the woocommerce_variation_options_pricing
action in the snippet:
woocommerce_variation_options woocommerce_variation_options_pricing woocommerce_variation_options_inventory woocommerce_variation_options_dimensions woocommerce_variation_options_tax woocommerce_variation_options_download woocommerce_product_after_variable_attributes