Skip to content

Instantly share code, notes, and snippets.

View dennisnissle's full-sized avatar

Dennis Nissle dennisnissle

View GitHub Profile
@dennisnissle
dennisnissle / functions.php
Created September 17, 2024 08:46
Do not replace the variable price with the current variation's price
<?php
add_filter( 'woocommerce_gzd_add_to_cart_variation_params', function( $params ) {
$params['replace_price'] = false;
return $params;
} );
@dennisnissle
dennisnissle / functions.php
Created September 11, 2024 14:33
Support additional/custom order item types for invoices
<?php
add_filter( 'storeabill_woo_order_item_types_to_sync', function( $item_types ) {
$item_types[] = 'course';
return $item_types;
} );
@dennisnissle
dennisnissle / functions.php
Created August 19, 2024 11:00
Decide whether an order needs billing (invoice) or not
<?php
add_filter( 'storeabill_woo_order_needs_billing', function( $needs_billing, $order ) {
// return false to prevent creating invoices for this order
return $needs_billing;
}, 10, 2 );
@dennisnissle
dennisnissle / functions.php
Created July 4, 2024 10:14
Force using VAT VIES SOAP API instead of REST API
<?php
add_filter( 'woocommerce_gzdp_vat_validator_use_soap', '__return_true' );
@dennisnissle
dennisnissle / functions.php
Created June 26, 2024 07:02
Use Dienstleistungen as lexoffice category for EU sales
<?php
add_filter( 'storeabill_external_sync_lexoffice_voucher_item_category_id', 'my_child_adjust_lexoffice_category_id', 10, 3 );
function my_child_adjust_lexoffice_category_id( $category, $item, $invoice ) {
$categories = array(
'eu_revenues' => '7c112b66-0565-479c-bc18-5845e080880a',
'dienstleistungen' => '8f8664a0-fd86-11e1-a21f-0800200c9a66',
);
@dennisnissle
dennisnissle / functions.php
Created June 17, 2024 13:25
Use a different GLS contact id based on shipment data
<?php
add_filter( 'woocommerce_gzd_gls_label_api_request', function( $request, $label ) {
if ( $shipment = $label->get_shipment() ) {
$country = $shipment->get_country();
if ( 'AT' === $country ) {
$request['Shipment']['Shipper']['ContactID'] = '12345';
}
}
@dennisnissle
dennisnissle / functions.php
Created May 21, 2024 15:41
Use Fremdleistungen § 13b instead of Innergemeinschaftliche Lieferung as lexoffice category
<?php
add_filter( 'storeabill_external_sync_lexoffice_voucher_item_category_id', 'my_child_adjust_lexoffice_category_id', 10, 3 );
function my_child_adjust_lexoffice_category_id( $category, $item, $invoice ) {
$categories = array(
'reverse_charge' => '9075a4e3-66de-4795-a016-3889feca0d20',
'fremdleistungen' => '380a20cb-d04c-426e-b49c-84c22adfa362',
);
@dennisnissle
dennisnissle / functions.php
Created May 10, 2024 11:39
Disable Germanized Shipments Integration mini Plugin
<?php
/**
* Plugin Name: Disable Germanized Shipments
* Plugin URI: https://www.vendidero.de/woocommerce-germanized
* Description: Disables the Germanized Shipments integration
* Version: 1.0.0
* Author: vendidero
* Author URI: https://vendidero.de
*
* @author vendidero
@dennisnissle
dennisnissle / functions.php
Created May 7, 2024 10:29
Display WooCommerce Appointments data for invoice items by using [document_item_reference data="woocommerce_appointments"]
<?php
add_filter( 'storeabill_shortcode_get_document_item_reference_data', function( $result, $atts, $reference, $shortcodes ) {
if ( 'woocommerce_appointments' === $atts['data'] && class_exists( 'WC_Appointment_Data_Store' ) ) {
$item = $reference->get_object();
if ( is_a( $item, 'WC_Order_Item_Product' ) ) {
$appointment_ids = WC_Appointment_Data_Store::get_appointment_ids_from_order_and_item_id( $item->get_order_id(), $item->get_id() );
foreach ( $appointment_ids as $appointment_id ) {
@dennisnissle
dennisnissle / functions.php
Created April 23, 2024 09:13
Move pickup location fields to order review wrapper in classic checkout
<?php
add_action( 'woocommerce_checkout_before_order_review', function() {
$fields = \Vendidero\Germanized\Shipments\PickupDelivery::register_classic_checkout_fields( array( 'order' => array() ) );
foreach( $fields['order'] as $key => $field ) {
woocommerce_form_field( $key, $field, wc()->checkout()->get_value( $key ) );
}
}, 20 );