register(new CFEP_Block_Integration()); } ); } /** * Extend Store API endpoints */ public function extend_store_api() { if (!function_exists('woocommerce_store_api_register_endpoint_data')) { return; } require_once CFEP_PLUGIN_DIR . 'includes/class-cfep-block-extend-store.php'; CFEP_Block_Extend_Store::init(); } /** * Save custom fields to order */ public function save_order_data($order, $request) { $block_manager = CFEP_Block_Field_Manager::instance(); $custom_fields = $block_manager->get_all_fields(null, true); $request_data = $request->get_params(); foreach ($custom_fields as $field) { // Skip default WooCommerce fields if ((int) $field['is_default'] === 1) { continue; } $field_key = $field['field_key']; $value = null; // Check for field value in request if (isset($request_data[$field_key])) { $value = $request_data[$field_key]; } elseif (isset($request_data['extensions']['cfep-block-fields'][$field_key])) { $value = $request_data['extensions']['cfep-block-fields'][$field_key]; } if ($value !== null) { $order->update_meta_data('_' . $field_key, sanitize_text_field($value)); } } $order->save(); } }