From 4001f2e70f6f29726ddbb02a1e88ee287f19c102 Mon Sep 17 00:00:00 2001 From: Marek Isalski Date: Sat, 19 May 2018 15:24:04 +0100 Subject: [PATCH] more hooks --- fulcrm_shoppingcart.module | 54 +++++++++++++++++++++++++++++++------- 1 file changed, 45 insertions(+), 9 deletions(-) diff --git a/fulcrm_shoppingcart.module b/fulcrm_shoppingcart.module index e85663b..90b133f 100644 --- a/fulcrm_shoppingcart.module +++ b/fulcrm_shoppingcart.module @@ -16,6 +16,15 @@ function hook_fulcrm_shoppingcart_person_add( $person, $redirect_destination ) { function hook_fulcrm_shoppingcart_pre_add_to_cart( $shoppingcart, $person, $product ) { } +function hook_fulcrm_shoppingcart_post_add_to_cart( $shoppingcart, $shoppingitem ) { +} + +function hook_fulcrm_shoppingcart_pre_remove_from_cart( $shoppingcart, $shoppingitem ) { +} + +function hook_fulcrm_shoppingcart_post_remove_from_cart( $shoppingcart, $product ) { +} + function hook_fulcrm_shoppingcart_pre_cart_to_transaction( $shoppingcart ) { } @@ -312,6 +321,10 @@ function fulcrm_shoppingcart_buy_eventbookingtype_form_submit( $form, &$form_sta $api_data = fulcrm_apiv2_POST( 'shoppingitem/', $item, $query = array( 'expand' => 'd' ) ); if ( $api_data[ 'success' ] ) { + $hook_results = module_invoke_all( 'fulcrm_shoppingcart_post_add_to_cart', $cart, $person_data[ 'data' ], $api_data[ 'data' ] ); + foreach ( $hook_results as $hook_result ) + return $hook_result; + drupal_set_message( t('Added "%item" to shopping cart.', array( '%item' => $item[ 'd' ][ 'name' ] ) ), 'status' ); $form_state[ 'redirect' ] = 'fulcrm/cart'; } else { @@ -366,6 +379,8 @@ function fulcrm_shoppingcart_buy_eventbookingtype_form( $form, &$form_state, $pe // $form[ 'person' ] = fulcrm_collection_to_form( 'person', $eventbookingtype[ 'person_ddatacollection' ], $person[ 'd' ] ); + die( print_r( $person, 1 ) ); + if ( array_key_exists( 'name', $person ) ) $persons = array( 'myself' => $person[ 'name' ] . ' (myself)' ); else @@ -481,6 +496,10 @@ function fulcrm_shoppingcart_buy( $product_id, $hmac ) { 'transaction_ddatacollection', 'lineitem_ddatacollection', ) ) ) ); + if ( !$product_data[ 'success' ] ) { + return 'error while fetching information about this product!'; + } + if ( user_is_logged_in() ) $person_id = fulcrm_webhook_get_pk_for_entity_type( 'user', $user->uid, 'person' ); else @@ -502,19 +521,19 @@ function fulcrm_shoppingcart_buy( $product_id, $hmac ) { return 'error while fetching your details!'; } } else { - $person_data = array( 'data' => array() ); + $person_data = array( 'data' => array( 'uuid' => fulcrm_uuid_uuid4(), + 'name' => 'website visitor', + 'd' => array( 'name' => 'website visitor', + ), + ) ); } - if ( !$product_data[ 'success' ] ) { + $cart = fulcrm_shoppingcart_get_session_cart( $create = true ); + if ( !$cart ) { return 'error while fetching the contents of your shopping cart!'; } - $shoppingcart_data = fulcrm_shoppingcart_get_session_cart( $create = true ); - if ( !$shoppingcart_data[ 'success' ] ) { - return 'error while fetching information about this product!'; - } - - $hook_results = module_invoke_all( 'fulcrm_shoppingcart_pre_add_to_cart', $shoppingcart_data[ 'data' ], $person_data[ 'data' ], $product_data[ 'data' ] ); + $hook_results = module_invoke_all( 'fulcrm_shoppingcart_pre_add_to_cart', $cart, $person_data[ 'data' ], $product_data[ 'data' ] ); foreach ( $hook_results as $hook_result ) return $hook_result; @@ -546,15 +565,32 @@ function fulcrm_shoppingcart_buy( $product_id, $hmac ) { function fulcrm_shoppingcart_remove_shoppingitem_confirm_submit( $form, &$form_state ) { $api_data = fulcrm_apiv2_DELETE( $form_state[ 'fulcrm_shoppingcart' ][ 'shoppingitem' ][ 'url' ] ); - if ( $api_data[ 'success' ] ) + if ( $api_data[ 'success' ] ) { drupal_set_message( t('Removed "%item" from cart.', array( '%item' => ( array_key_exists( 'name', $form_state[ 'fulcrm_shoppingcart' ][ 'shoppingitem' ][ 'd' ] ) ? $form_state[ 'fulcrm_shoppingcart' ][ 'shoppingitem' ][ 'd' ][ 'name' ] : $form_state[ 'fulcrm_shoppingcart' ][ 'shoppingitem' ][ 'product' ][ 'name' ] ) ) ), 'status' ); + $cart = fulcrm_shoppingcart_get_session_cart(); + if ( !$cart ) { + return 'error while fetching information about your shopping cart!'; + } + $hook_results = module_invoke_all( 'fulcrm_shoppingcart_post_remove_from_cart', $cart, $form_state[ 'fulcrm_shoppingcart' ][ 'shoppingitem' ][ 'product' ] ); + foreach ( $hook_results as $hook_result ) + return $hook_result; + } $form_state[ 'redirect' ] = 'fulcrm/cart'; } function fulcrm_shoppingcart_remove_shoppingitem_confirm( $form, &$form_state, $shoppingitem ) { $form_state[ 'fulcrm_shoppingcart' ][ 'shoppingitem' ] = $shoppingitem; + $cart = fulcrm_shoppingcart_get_session_cart(); + if ( !$cart ) { + return 'error while fetching information about your shopping cart!'; + } + + $hook_results = module_invoke_all( 'fulcrm_shoppingcart_pre_remove_from_cart', $cart, $shoppingitem ); + foreach ( $hook_results as $hook_result ) + return $hook_result; + return confirm_form( $form, t('Remove from cart?'), 'fulcrm/cart',