Hi,
danke für die Antwort. In diesem Shop sind die taxes nicht an das Produkt gekoppelt, sondern abhängig vom Kunden (Kunde aus DE oder Kunde aus EU oder Kunde aus Drittland und weitere Kombinationen – z.B Niederlassungen usw.). Das läuft auch alles bei normalen Bestellungen des Kunden. Es soll aber wie bei einem Abo automatisiert eine neue Bestellung generiert werden mit vorhandenen Daten. Der Code dazu sieht so aus:
$order = wc_create_order();
$order->set_customer_id( $kundeID );
/*
* $keineMwSt = get_user_meta($userid,“keineMwSt“,true);
if( $keineMwSt == 1 ){
$tax_class = ‚Zero Rate‘;
} else {
$tax_class = ‚Virtual rate‘;
}
*/
$args = array(
’name‘ => „Lizenzierung im Abo“,
‚tax_class‘ => „“,
‚product_id‘ => „“,
‚variation_id‘ => „“,
‚variation‘ => „“,
’subtotal‘ => $gesamtpreis,
‚total‘ => $gesamtpreis,
‚quantity‘ => 1,
);
$order->add_product( wc_get_product( 954 ) , 1, $args );
$address = array(
‚first_name‘ => get_user_meta($kundeID,’first_name‘,true),
‚last_name‘ => get_user_meta($kundeID,’last_name‘,true),
‚company‘ => get_user_meta($kundeID,’billing_company‘,true),
‚email‘ => get_user_meta($kundeID,’billing_email‘,true),
‚phone‘ => get_user_meta($kundeID,’billing_phone‘,true),
‚address_1′ => get_user_meta($kundeID,’billing_address_1‘,true),
‚address_2′ => get_user_meta($kundeID,’billing_address_2‘,true),
‚city‘ => get_user_meta($kundeID,’billing_city‘,true),
‚postcode‘ => get_user_meta($kundeID,’billing_postcode‘,true),
‚country‘ => get_user_meta($kundeID,’billing_country‘,true),
);
$order->set_address( $address, ‚billing‘ );
$order->set_address( $address, ’shipping‘ );
$order->set_payment_method( ‚PayPerLink‘ );
$order->set_payment_method_title( ‚PayPerLink‘ );
$order->set_status( ‚wc-on-hold‘, ‚Order is created programmatically‘);
$order->calculate_totals();
//$order->save();
Hier fehlt jetzt noch der Steuersatz.