Last active
February 15, 2024 16:03
-
-
Save ihslimn/9d79aefd016b10da75c4d71034edbb07 to your computer and use it in GitHub Desktop.
JetEngine Cross-sells & Upsells macros
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
add_action( 'jet-engine/register-macros', function(){ | |
if ( ! function_exists( 'WC' ) ) { | |
return; | |
} | |
class WC_Crosssells extends \Jet_Engine_Base_Macros { | |
public function macros_tag() { | |
return 'wc_crosssells'; | |
} | |
public function macros_name() { | |
return 'WC Product Cross-sells'; | |
} | |
public function macros_args() { | |
return array(); | |
} | |
public function macros_callback( $args = array() ) { | |
$object = $this->get_macros_object(); | |
if ( ! is_a( $object, 'WC_Product' ) && ! is_a( $object, 'WP_Post' ) ) { | |
return; | |
} | |
$object_id = jet_engine()->listings->data->get_current_object_id( $object ); | |
$product = wc_get_product( $object_id ); | |
if ( ! $product ) { | |
return; | |
} | |
$cross_sell_products = $product->get_cross_sell_ids(); | |
return implode( ',', $cross_sell_products ); | |
} | |
} | |
new WC_Crosssells(); | |
class WC_Upsells extends \Jet_Engine_Base_Macros { | |
public function macros_tag() { | |
return 'wc_upsells'; | |
} | |
/** | |
* Macros name in UI | |
*/ | |
public function macros_name() { | |
return 'WC Product Upsells'; | |
} | |
public function macros_args() { | |
return array(); | |
} | |
public function macros_callback( $args = array() ) { | |
$object = $this->get_macros_object(); | |
if ( ! is_a( $object, 'WC_Product' ) && ! is_a( $object, 'WP_Post' ) ) { | |
return; | |
} | |
$object_id = jet_engine()->listings->data->get_current_object_id( $object ); | |
$product = wc_get_product( $object_id ); | |
if ( ! $product ) { | |
return; | |
} | |
$upsells_products = $product->get_upsell_ids(); | |
return implode( ',', $upsells_products ); | |
} | |
} | |
new WC_Upsells(); | |
} ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment