add_filter( 'woocommerce_quantity_input_args', 'wpp_woocommerce_step_quantity_input', 10, 2 );
function wpp_woocommerce_step_quantity_input( $args, $product ) {
// ТУТ можете слазить в $product и сделать проверку на доп условие
// которое допишите к if ( is_cart( ) && допусловие )
if ( is_cart( ) ) {
$args['min_value'] = 50;
$args['step'] = 50;
}
return $args;
}
add_action('wp_insert_comment', 'wpp_comment_inserted', 99, 2);
function wpp_comment_inserted($comment_id, $comment_object) {
//$comment_object - объект комментария,
//получаете пост на который он оставлен
// и если это продукт отправляете письмо
}
add_action('transition_comment_status', 'wpp_comment_approve', 10, 3);
function wpp_comment_approve($new_status, $old_status, $comment_object) {
if( $old_status !== $new_status && $new_status === 'approved' ) {
//$comment_object - объект комментария,
//получаете пост на который он оставлен
// и если это продукт отправляете письмо
}
}
function wpp_add_units_after_price_in_cart( $price, $cart_item, $cart_item_key ) {
// если единицы измерения хранятся не в в мета поле _product_units, тут получаем их
// из места их хранения по своему
$units = get_post_meta( $cart_item['product_id'], '_product_units', true );
if ( ! empty( $units ) ) {
$price .= ' ' . $units ;
}
return $price;
}
add_filter( 'woocommerce_cart_item_price', 'wpp_add_units_after_price_in_cart', 10, 3 );
function wpp_reset_product_data_tabs_position(){
// тут возможно и не 70, надо поиграться с этим параметром, или найти приоритет указанный в теме
remove_action( 'woocommerce_single_product_summary' ,'woocommerce_output_product_data_tabs', 70);
//тут именно так
add_action( 'woocommerce_after_single_product_summary' ,'woocommerce_output_product_data_tabs', 10);
}
// тут с приоритетом можно поиграться, но думается мне 100 вполне хватит
add_action('init','wpp_reset_product_data_tabs_position',100);
главной и страницах каталога и категорий каталога.
if( is_front_page() || is_woocommerce() ) { }
# отключаете стандартные кнопки
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart');
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
# подключаете свои
remove_action( 'woocommerce_after_shop_loop_item', 'my_btn_to_cart');
remove_action( 'woocommerce_single_product_summary', 'my_btn_to_cart', 30 );
my_btn_to_cart()
подключаете свою кнопку, на которую вешаете, что хотите /**
* Get product variation dimensions
* @param $product_id int product_id
*
* @return array product variation dimensions
*/
function wpp_get_product_variation_dimensions($product_id) {
$product = get_product( $product_id );
$out = array();
if ( $product->is_type( 'variable' ) ) {
$variations = $product->get_available_variations();
foreach ( $variations as $variable_array ) {
$variation = new WC_Product( $variable_array[ 'variation_id' ] );
$out[ 'variation_' . $variation->id ] = array(
'weight' => $variation->weight,
'length' => $variation->length,
'width' => $variation->width,
'height' => $variation->height
);
}
}
return $out;
}
$tt = wpp_get_product_variation_dimensions(133821);
array( 2 ) {
[ "variation_133823" ]=>
array( 4 ) {
[ "weight" ]=>
string( 1 ) "3"
[ "length" ]=>
string( 3 ) "500"
[ "width" ]=>
string( 3 ) "700"
[ "height" ]=>
string( 3 ) "200"
}
[ "variation_133824" ]=>
array( 4 ) {
[ "weight" ]=>
string( 1 ) "2"
[ "length" ]=>
string( 3 ) "200"
[ "width" ]=>
string( 3 ) "270"
[ "height" ]=>
string( 3 ) "500"
}
}