所以我正在研究具有儿童主题的WooCommerce.我创建了我的结构,
/themes/child/woocommerce/checkout/review-order.php
Run Code Online (Sandbox Code Playgroud)
我的目标只是向页面添加一些"静态文本".所以,例如,<h2>Purchase Disclaimer</h2>
内 review-order.php
<?php
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
?>
<h2>Purchase Disclaimer</h2>
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我查看页面时,它会去,
<h2>Purchase Disclaimer</h2>
<h2>Purchase Disclaimer</h2>
Run Code Online (Sandbox Code Playgroud)
我不知道为什么它似乎加载了2次.这是一个小故障,还是我加载它很奇怪?也许有人可以帮我澄清一下这个问题.
提前致谢
我正在寻找一种方法在WooCommerce的产品页面上的产品标题和简短描述之间插入自定义内容.到目前为止,我只能使用以下代码在简短描述的开头添加自定义内容:
function insert_content( $post_excerpt ) {
$content = 'My custom content';
return $content.'<br>'.$post_excerpt; }
add_filter('woocommerce_short_description', 'insert_content', 10, 1);
Run Code Online (Sandbox Code Playgroud)
但是,我需要将此内容放在产品标题和简短说明标题之间,而不是在最后一个标题之下.我想我正在使用错误的钩子,但我试过的其他几个不起作用.有任何想法吗?
在我的自定义插件(在 WooCommerce 2.6.x 和 3.x 中工作)中,我需要在创建新订单时获取订单 ID。我尝试了不同的挂钩,但它们仅在客户创建订单时起作用,而不是在从管理员创建订单时起作用。
我试过:
更新
最后我用了这个:
add_action('wp_insert_post', function($order_id)
{
if(!did_action('woocommerce_checkout_order_processed')
&& get_post_type($order_id) == 'shop_order'
&& validate_order($order_id))
{
order_action($order_id);
}
});
Run Code Online (Sandbox Code Playgroud)
其中validate_order是:
function validate_order($order_id)
{
$order = new \WC_Order($order_id);
$user_meta = get_user_meta($order->get_user_id());
if($user_meta)
return true;
return false;
}
Run Code Online (Sandbox Code Playgroud)
感谢validate_order,当您开始创建订单时,该操作不会执行。我使用它是!did_action('woocommerce_checkout_order_processed')因为我不希望在客户创建订单时执行该操作(我为此有一个特定操作,使用woocommerce_checkout_order_processed)。
感谢StackOverflow的所有开发人员.
我想在Woocommerce的Linked Product部分添加更多字段.这些字段应与Upsell/Crosssell类似.
我的代码到目前为止: -
add_action( 'woocommerce_product_options_linked_product_data', 'woocom_general_product_data_custom_field' );
woocommerce_wp_text_input(
array(
'id' => '_upsizing_products',
'label' => __( 'Upsizing Products', 'woocommerce' ),
'placeholder' => 'Upsizing Products',
'desc_tip' => 'true',
'description' => __( 'Select Products Here', 'woocommerce' )
)
);
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我需要组合框,例如,当您在输入框中键入3个字符时,它将显示可以选择的匹配产品列表.与Upsell/Cross Sell类似.
请任何人帮我实现此自定义字段.提前致谢.
编辑:有人吗?
我正在尝试在说明末尾插入一些文本。过滤器可以吗?
还是我需要通过儿童主题来做到这一点?一直试图找到描述的钩子,但只能找到一个简短的描述。例:
这是一个描述。
只需一些示例文本即可填写说明。
我想要的是注入“这是描述中的最后一行”,因此孔描述将如下所示。
这是一个描述。
只需一些示例文本即可填写说明。
这是描述中的最后一行
我在简短描述之前插入文本的代码是这样的:
add_filter( 'woocommerce_short_description', 'single_product_short_descriptions', 10, 1 );
function single_product_short_descriptions( $post_excerpt ){
global $product;
if ( is_single( $product->id ) )
$post_excerpt = '<div class="product-message"><p>' . __( "Article only available in the store.", "woocommerce" ) . '</p></div>' . $post_excerpt;
return $post_excerpt;
}
Run Code Online (Sandbox Code Playgroud) 我一直在尝试覆盖“Woocommerce Shippment Tracking”插件中的模板:
/wp-content/plugins/woocommerce-shipment-tracking/templates/email/tracking-info.php。
我已经尝试过,但找不到合适的挂钩,并且当我尝试在主题中创建文件时没有成功。
有人知道如何在这个插件中自定义模板而不编辑插件本身吗?
我正在尝试通过编辑我的主题的functions.php文件来重命名多个WooCommerce订单状态.我发现几年前发布的一些代码可以改变单个订单状态,但由于我对php非常缺乏经验,我不知道如何扩展它以改变多个状态.理想情况下,我还想将'wc-processing'重命名为'付费',将'wc-on-hold'重命名为'待定'.
这是我发现编辑单个订单状态的代码:
function wc_renaming_order_status( $order_statuses ) {
foreach ( $order_statuses as $key => $status ) {
$new_order_statuses[ $key ] = $status;
if ( 'wc-completed' === $key ) {
$order_statuses['wc-completed'] = _x( 'Order Received', 'Order status', 'woocommerce' );
}
}
return $order_statuses;
}
add_filter( 'wc_order_statuses', 'wc_renaming_order_status' );
Run Code Online (Sandbox Code Playgroud)
任何人都知道我需要做些什么改变来改变其他状态?
我已使用此挂钩的第一个选项(其他选项不起作用)->所有产品的 Woocommerce 产品默认描述
这就是它的样子(红色标记的文字是标准描述)
但是,我希望文本出现在产品描述之后。红色箭头所在的位置是标准文本。所以上面的“in winkelmand”(意思是“添加到购物袋”)
我怎样才能实现这个目标?
在可变产品上,我想删除选择变体(例如尺寸,颜色)时可以在我的WooCommerce产品页面上看到的重置变体按钮,该按钮可以重置所有已做出的选择。
即使未显示此弹出窗口,也会修改“变化”选项卡的显示。“最后一个版本”标签与其他标签未对齐(因为需要一些空间才能显示弹出窗口)。
我应该怎么做才能根本不调用此函数(因此,弹出窗口不需要任何空间,并且变体选项卡可以正确显示)?
我试图使其不可见,但这还不够。我根本不称呼它。
<a class="reset_variations" href="#" style="visibility: visible; display: block;">Reset</a>
Run Code Online (Sandbox Code Playgroud)
在“点击”事件中,将调用javascript。
我希望不调用javascript,以便变体标签正确显示。
我通过成功添加新端点来自定义我的 woocommerce 帐户页面。\n这个新端点的标题是“我的帐户”默认标题。我也想自定义标题。\n我尝试使用挂钩“woocommerce_endpoint_{endpoints}_title”,它在默认端点上完美工作,但它似乎不适用于自定义端点:
\n我的自定义端点(不起作用):
\nadd_filter( \'woocommerce_endpoint_favoris_title\', \'change_my_account_favoris_title\', 10, 2 );\nfunction change_my_account_favoris_title( $title, $endpoint ) {\n $title = __( "Tests", "woocommerce" );\n return $title;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n默认端点示例工作:
\nadd_filter( \'woocommerce_endpoint_edit-account_title\', \'change_my_account_edit_title\', 10, 2 );\nfunction change_my_account_edit_title( $title, $endpoint ) {\n $title = __( "Tests", "woocommerce" );\n return $title;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n目前找不到任何相关内容,\n感谢您的宝贵时间
\n编辑:
\n我的 woocommerce 帐户部分的完整挂钩:
\n1/ 创建端点:
\nadd_filter (\'woocommerce_account_menu_items\', \'custom_log_history_link\', 40);\nfunction custom_log_history_link($menu_links){\n $menu_links = array_slice( $menu_links, 0, 5, true )\n + array( \'favoris\' …Run Code Online (Sandbox Code Playgroud) hook-woocommerce ×10
php ×10
woocommerce ×10
wordpress ×9
product ×3
orders ×2
endpoint ×1
templates ×1