ID );
$product = ( ! empty( $post->ID ) && function_exists( 'wc_get_product' ) ) ? wc_get_product( $post->ID ) : null;
$is_callable_product_get_meta = $this->is_callable( $product, 'get_meta' );
$is_send_coupons_on_renewals = ( true === $is_callable_product_get_meta ) ? $product->get_meta( 'send_coupons_on_renewals' ) : get_post_meta( $post->ID, 'send_coupons_on_renewals', true );
echo '
';
$all_discount_types = wc_get_coupon_types();
?>
/>
product_options_admin_js(); ?>
';
}
/**
* Coupon fields for variation
*
* @param int $loop Position in the loop.
* @param array $variation_data Variation data.
* @param WP_Post $variation Post data.
*/
public function woocommerce_product_options_coupons_variable( $loop = 0, $variation_data = array(), $variation = null ) {
$variation_id = $variation->ID;
$all_discount_types = wc_get_coupon_types();
$product = ( ! empty( $variation_id ) && function_exists( 'wc_get_product' ) ) ? wc_get_product( $variation_id ) : null;
$is_callable_product_get_meta = $this->is_callable( $product, 'get_meta' );
$is_send_coupons_on_renewals = ( true === $is_callable_product_get_meta ) ? $product->get_meta( 'send_coupons_on_renewals' ) : get_post_meta( $variation_id, 'send_coupons_on_renewals', true );
?>
product_options_admin_js(); ?>
is_callable( $product, 'update_meta_data' );
if ( ! empty( $post_coupon_title ) ) {
if ( $this->is_wc_gte_30() ) {
$coupon_titles = $post_coupon_title;
} else {
$coupon_titles = array_filter( array_map( 'trim', explode( ',', $post_coupon_title ) ) );
}
if ( true === $is_callable_product_update_meta ) {
$product->update_meta_data( '_coupon_title', $coupon_titles );
} else {
update_post_meta( $post_id, '_coupon_title', $coupon_titles );
}
} else {
if ( true === $is_callable_product_update_meta ) {
$product->update_meta_data( '_coupon_title', array() );
} else {
update_post_meta( $post_id, '_coupon_title', array() );
}
}
if ( isset( $_POST['send_coupons_on_renewals'][ $post_id ] ) ) { // phpcs:ignore
if ( true === $is_callable_product_update_meta ) {
$product->update_meta_data( 'send_coupons_on_renewals', wc_clean( wp_unslash( $_POST['send_coupons_on_renewals'][ $post_id ] ) ) ); // phpcs:ignore
} else {
update_post_meta( $post_id, 'send_coupons_on_renewals', wc_clean( wp_unslash( $_POST['send_coupons_on_renewals'][ $post_id ] ) ) ); // phpcs:ignore
}
} else {
if ( true === $is_callable_product_update_meta ) {
$product->update_meta_data( 'send_coupons_on_renewals', 'no' );
} else {
update_post_meta( $post_id, 'send_coupons_on_renewals', 'no' );
}
}
if ( $this->is_callable( $product, 'save' ) ) {
$product->save();
}
}
/**
* Function for saving coupon details in product meta
*
* @param integer $variation_id Variation ID.
* @param integer $i Loop ID.
*/
public function woocommerce_process_product_meta_coupons_variable( $variation_id = 0, $i = 0 ) {
if ( empty( $variation_id ) ) {
return;
}
$variation_id = absint( $variation_id );
$variation = ( ! empty( $variation_id ) ) ? wc_get_product( $variation_id ) : null;
$is_callable_variation_update_meta = $this->is_callable( $variation, 'update_meta_data' );
$post_coupon_title = ( ! empty( $_POST['_coupon_title'][ $variation_id ][ $i ] ) ) ? wc_clean( wp_unslash( $_POST['_coupon_title'][ $variation_id ][ $i ] ) ) : ''; // phpcs:ignore
if ( ! empty( $post_coupon_title ) ) {
if ( $this->is_wc_gte_30() ) {
$coupon_titles = $post_coupon_title;
} else {
$coupon_titles = array_filter( array_map( 'trim', explode( ',', $post_coupon_title ) ) );
}
if ( true === $is_callable_variation_update_meta ) {
$variation->update_meta_data( '_coupon_title', $coupon_titles );
} else {
update_post_meta( $variation_id, '_coupon_title', $coupon_titles );
}
} else {
if ( true === $is_callable_variation_update_meta ) {
$variation->update_meta_data( '_coupon_title', array() );
} else {
update_post_meta( $variation_id, '_coupon_title', array() );
}
}
if ( isset( $_POST['send_coupons_on_renewals'][ $variation_id ][ $i ] ) ) { // phpcs:ignore
if ( true === $is_callable_variation_update_meta ) {
$variation->update_meta_data( 'send_coupons_on_renewals', wc_clean( wp_unslash( $_POST['send_coupons_on_renewals'][ $variation_id ][ $i ] ) ) ); // phpcs:ignore
} else {
update_post_meta( $variation_id, 'send_coupons_on_renewals', wc_clean( wp_unslash( $_POST['send_coupons_on_renewals'][ $variation_id ][ $i ] ) ) ); // phpcs:ignore
}
} else {
if ( true === $is_callable_variation_update_meta ) {
$variation->update_meta_data( 'send_coupons_on_renewals', 'no' );
} else {
update_post_meta( $variation_id, 'send_coupons_on_renewals', 'no' );
}
}
if ( $this->is_callable( $variation, 'save' ) ) {
$variation->save();
}
}
}
}
WC_SC_Product_Fields::get_instance();