Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 后端订单在Woocommerce 3.3+;_Php_Wordpress_Button_Woocommerce_Orders - Fatal编程技术网

Php 后端订单在Woocommerce 3.3+;

Php 后端订单在Woocommerce 3.3+;,php,wordpress,button,woocommerce,orders,Php,Wordpress,Button,Woocommerce,Orders,由于WooCommerce版本3.3+下面的代码在管理订单列表中显示自定义操作按钮,因此不再工作 // Add your custom order action button add_action( 'woocommerce_admin_order_actions_end', 'add_custom_order_actions_button', 100, 1 ); function add_custom_order_actions_button( $order ) { // Get t

由于WooCommerce版本3.3+下面的代码在管理订单列表中显示自定义操作按钮,因此不再工作

// Add your custom order action button
add_action( 'woocommerce_admin_order_actions_end', 'add_custom_order_actions_button', 100, 1 );
function add_custom_order_actions_button( $order ) {

    // Get the tracking number
    $traking_number = get_post_meta( $order->get_id(), '_aftership_tracking_number', true );
    if( empty($traking_number) ) return;

    // Prepare the button data
    $url    = esc_url('https://track.aftership.com/'.$traking_number.'?');
    $name   = esc_attr( __('Tracking', 'woocommerce' ) );
    $action = esc_attr( 'view tracking' ); // keep "view" class for a clean button CSS

    // Set the action button
    printf( '<a class="button tips %s" href="%s" data-tip="%s" target="_blank">%s</a>', $action, $url, $name, $name );
}

// The icon of your action button (CSS)
add_action( 'admin_head', 'add_custom_order_actions_button_css' );
function add_custom_order_actions_button_css() {
    echo '<style>.view.tracking::after { font-family: woocommerce; content: "\e005" !important; }</style>';
}
//添加自定义订单操作按钮
添加操作('woocommerce\u admin\u order\u actions\u end','add\u custom\u order\u actions\u button',100,1);
函数添加\自定义\命令\操作\按钮($order){
//获取跟踪号码
$traking_number=get_post_meta($order->get_id(),'u aftership_traking_number',true);
if(空($traking_number))返回;
//准备按钮数据
$url=esc\u url($url)https://track.aftership.com/“.$traking_编号。”?”;
$name=esc_attr('Tracking','woocommerce');
$action=esc_attr('view tracking');//为干净的按钮CSS保留“view”类
//设置操作按钮
printf(“”,$action,$url,$name,$name);
}
//动作按钮的图标(CSS)
添加操作('admin_head'、'add_custom_order_actions_button_css');
函数添加\自定义\顺序\操作\按钮\ css(){
echo.view.tracking::在{font-family:woocommerce;内容:“\e005”!important;}”之后;
}
代码来自这个答案:

他们做了哪些更改以阻止它在新版本中工作

如何在Woocommerce版本3.3+中工作?

他们一定变化很大,因为您使用的挂钩不存在。这是您的代码的修改版本。我改变了将内联CSS排队以获得最佳实践的方式

// Add your custom order action button
add_filter( 'woocommerce_admin_order_actions', 'add_custom_order_actions_button', 10, 2 );

function add_custom_order_actions_button( $actions, $order ) {

    // Get the tracking number
    $tracking_number = get_post_meta( $order->get_id(), '_aftership_tracking_number', true );

    if( empty( $tracking_number ) ) 
        return $actions;

    // Prepare the button data
    $url    = esc_url('https://track.aftership.com/'.$tracking_number.'?');
    $name   = esc_attr( __('Tracking', 'woocommerce' ) );
    $action = esc_attr( 'view tracking' ); // keep "view" class for a clean button CSS

    $actions['view-tracking'] = array( 'url' => $url, 'name' => $name, 'action' => $action );

    return $actions;
}

//Adding CSS inline style to an existing CSS stylesheet
function add_inline_css() {
    //All the user input CSS settings as set in the plugin settings
    $custom_css = '.view.tracking::after { font-family: woocommerce; content: "\e005" !important; }';

    //Add the above custom CSS via wp_add_inline_style
    wp_add_inline_style( 'woocommerce_admin_styles', $custom_css );
}
add_action( 'wp_enqueue_scripts', 'add_inline_css' );

这是正确的方法,因为这是代码,将加载到单独的浏览器窗口(或选项卡)相应的跟踪页面

钩子。vesion 3.3+中的变化是显示按钮
wc\u render\u action\u buttons()
,以及显示的按钮html结构和类的功能
为什么?…因为订单列表显示在3.3+版本中得到了增强

守则:

// Add your custom order action button
add_action( 'woocommerce_admin_order_actions_end', 'add_custom_order_actions_button', 100, 1 );
function add_custom_order_actions_button( $order ) {

    // Get the tracking number
    $traking_number = get_post_meta( $order->get_id(), '_aftership_tracking_number', true );
    if( empty($traking_number) ) return;

    // Prepare the button data
    $url    = esc_url('https://track.aftership.com/'.$traking_number.'?');
    $name   = esc_attr( __('Tracking', 'woocommerce' ) );
    $class  = esc_attr( 'tracking' );

    // Custom action button (with a target='_blank' opening a new browser window)
    printf( '<a class="button wc-action-button wc-action-button-%s %s" href="%s" title="%s" target="_blank">%s</a>', $class, $class, $url, $name, $name );
}

// The icon of your action button (CSS)
add_action( 'admin_head', 'add_custom_order_actions_button_css' );
function add_custom_order_actions_button_css() {
    echo '<style>.wc-action-button-tracking::after { font-family: woocommerce !important; content: "\e01a" !important; }</style>';
}
//添加自定义订单操作按钮
添加操作('woocommerce\u admin\u order\u actions\u end','add\u custom\u order\u actions\u button',100,1);
函数添加\自定义\命令\操作\按钮($order){
//获取跟踪号码
$traking_number=get_post_meta($order->get_id(),'u aftership_traking_number',true);
if(空($traking_number))返回;
//准备按钮数据
$url=esc\u url($url)https://track.aftership.com/“.$traking_编号。”?”;
$name=esc_attr('Tracking','woocommerce');
$class=esc_attr(‘跟踪’);
//自定义操作按钮(目标为“空白”打开新的浏览器窗口)
printf(“”,$class,$class,$url,$name,$name);
}
//动作按钮的图标(CSS)
添加操作('admin_head'、'add_custom_order_actions_button_css');
函数添加\自定义\顺序\操作\按钮\ css(){
echo'.wc操作按钮跟踪::在{font-family:woocommerce!重要;内容:“\e01a”!重要;}”之后;
}
代码进入活动子主题(或主题)的function.php文件

经过测试,仅适用于woocommerce版本3.3+

这里我不使用
woocommerce\u admin\u order\u actions
常用的操作钩子,而是使用一个不寻常的钩子,来允许在单独的浏览器窗口(或选项卡)中显示跟踪页面


有什么问题吗?按钮不显示,或者当您单击它时,什么也没有发生?我查看了您尚未定义变量$actions的情况。这意味着什么?按钮不再显示。他们将按钮从右侧重新定位到中心位置,由于某种原因,它被打破了。@AndrewSchultz的可能重复项不是重复项,因为WC 3.3版的管理订单列表已通过一些增强进行了更改…操作按钮现在有所不同,并且在Woocommerce源代码中包含了新的功能。因此,这个问题与这些更改直接相关……这是在您的3.3.3安装上工作吗?不幸的是,这对我不起作用。嗯,我使用的是3.3.1版,我没有意识到我没有安装最新版本。我会升级,看看有什么不同。我想在按下按钮时触发这个wp_remote_post API调用,我如何将这个操作绑定到操作中?谢谢你的帮助。我还意识到他们在最新版本中隐藏了这些动作。我必须选择屏幕选项并启用它。愚蠢的我,我是一只鹅。@disky没问题……重要的是它能再次工作,并且有一个比以前更好的图标。这非常感谢-如果我不想只是生成一个指向另一个站点的href,而是在单击按钮时执行一些PHP代码(可能是API调用或更新订单上的一些元数据),那密码属于哪里?@谢谢。如果你觉得这很好,如果你喜欢/想要的话,请投它一票。要回答您的问题,可以使用CURL执行API调用,然后在得到正确响应后按顺序更新某些内容……现在,这不能在注释中回答,因为您需要其他内容。最好是问一个有关StackOverFlow的新问题,并在这里通知我。最好在问题中包含一些自定义代码。