Reputation: 23
everyone,
I have a multi vendor website so my customers can create listings. I would like to include the QR Code in the listing or in the automatic woocommerce email to let the customer know that they can include it in their listing (maybe easier choice).
I have installed the following extensions:
The WOO Qr extension automatically creates a code for each woocommerce "listing" and or product. This is the code to insert in the listing to make it visible to the public
[wooqr id="2100" title="1" price="1"]
Obviously the id changes depending on the listing. I wonder is it possible to insert it maybe in the php code of the email ? By making id populate automatically ?
Thanks
This is the email template
<?php
/**
* Admin new order email
*
* This template can be overridden by copying it to yourtheme/woocommerce/emails/admin-new-order.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce\Templates\Emails\HTML
* @version 3.7.0
*/
defined( 'ABSPATH' ) || exit;
/*
* @hooked WC_Emails::email_header() Output the email header
*/
do_action( 'woocommerce_email_header', $email_heading, $email ); ?>
<?php /* translators: %s: Customer billing full name */ ?>
<p><?php printf( esc_html__( 'You’ve received the following order from %s:', 'woocommerce' ), $order->get_formatted_billing_full_name() ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></p>
<?php
/*
* @hooked WC_Emails::order_details() Shows the order details table.
* @hooked WC_Structured_Data::generate_order_data() Generates structured data.
* @hooked WC_Structured_Data::output_structured_data() Outputs structured data.
* @since 2.5.0
*/
do_action( 'woocommerce_email_order_details', $order, $sent_to_admin, $plain_text, $email );
/*
* @hooked WC_Emails::order_meta() Shows order meta data.
*/
do_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text, $email );
/*
* @hooked WC_Emails::customer_details() Shows customer details
* @hooked WC_Emails::email_address() Shows email address
*/
do_action( 'woocommerce_email_customer_details', $order, $sent_to_admin, $plain_text, $email );
/**
* Show user-defined additional content - this is set in each email's settings.
*/
if ( $additional_content ) {
echo wp_kses_post( wpautop( wptexturize( $additional_content ) ) );
}
/*
* @hooked WC_Emails::email_footer() Output the email footer
*/
do_action( 'woocommerce_email_footer', $email );
Upvotes: 2
Views: 296
Reputation: 296
You need to do 2 things. Firstly figure out a way to get the product ID, and secondly write a function into functions.php that will use a hook from the template and then set it to something like this:
<?php
$qr_shortcode = '[wooqr id="' . $productid . '" title="1" price="1"]';
echo do_shortcode($qr_shortcode);
?>
Upvotes: 2